C ++가 아닌 gRPC C ++ InProcessChannel에 연결하는 방법은 무엇입니까?

Dec 21 2020

나는 JNI 대안으로 gRPC를 시도 하고 있으며 아이디어는 C ++ 측에 gRPC 서비스를, Java / Android 측에 클라이언트를 연결하는 것입니다. 가능한 최상의 성능을 얻으려면 in-process 채널을 사용하는 것이 좋습니다 (귀하의 제안에 개방).

어떻게 C ++ gRPC 서버에 연결할 수 InProcessChannel()있습니까? 문제는 내가 필요가있다 전달할 을 name자바에 대한 InProcessServerBuilder.

C ++ gRPC 테스트 (예 : here )에서 설정을 찾을 수 없으며 InProcessChannel순수한 C ++에서만 사용할 수 있다고 생각하게 만듭니다 (서버와 클라이언트 모두 C ++에 있음). C ++ 서비스 및 Java 클라이언트에서 여전히 가능합니까?

추신. Java-server + Java-client에 대해 할 수있었습니다.

PPS. 예를 들어 비슷한 QnA 몇 개를 찾았습니다 . 여기에 있지만 여전히 함께 작동하는 방법이 있는지 궁금합니다 (아마 타사 채널 impl과 함께). Unix 도메인 소켓에서 작동 할 수 있습니까?

답변

3 EricAnderson Dec 22 2020 at 06:14

C ++ 및 Java "in-process"전송은 여러 언어가 동일한 프로세스에있는 경우에 적절하게 이름이 지정되지 않았습니다. In-process 전송은 각 개별 언어 내에서만 작동합니다. C ++ 및 Java in-process 전송은 상호 작용할 수 없습니다.

일반 HTTP / 2 클라이언트 / 서버를 사용해야합니다.

"공유 메모리"전송과 같이 원하는 것이 존재할 수 있지만 상당한 양의 작업이며 유지 관리 부담을 상대적으로 적게 사용합니다.

1 4ntoine Dec 22 2020 at 20:24

나는 Eric의 Anderson 대답을 올바른 것으로 받아 들였습니다. 그러나 Unix 도메인 소켓으로 작업 하는 방법을 아는 것이 유용 할 수 있습니다 .

나는 안드로이드 용 으로 패치 netty 하고 그것을 사용해야했다 . Android 관련 권한 참고 사항에주의 하세요.