我是trying gRPC作为JNI的替代品,我的想法是在Java端连接gRPC服务,在C++ /Android端连接客户端。为了获得最好的性能,我更喜欢使用进程内通道(开放给你的建议)。
如何使用InProcessChannel()连接到C++ gRPC服务器?问题是我需要为Java的InProcessServerBuilder pass一个name。
在C++ gRPC测试中(例如here)我找不到它的设置,这让我认为InProcessChannel只能在纯C++中使用(服务器和客户端都在C++中)。C++服务和Java客户端还可以吗?
PS。我能够在Java-server + Java-client上做到这一点。
PPS。我已经发现了几个类似的QnAs eg. here,但我想知道是否还有一种方法可以让它协同工作(可能是通过一些第三方渠道实施)。它能在Unix域套接字上工作吗?
发布于 2020-12-22 07:14:30
对于多语言处于同一进程中的情况,C++和Java的“进程内”传输的名称并不恰当。进程内传输只在每种单独的语言中工作;C++和Java进程内传输不能交互。
您应该使用普通的HTTP/2客户端/服务器。
虽然像你想要的东西可能存在,作为一个“共享内存”传输,它是一个重要的工作量,并将看到相对较少的维护负担的使用。
https://stackoverflow.com/questions/65389428
复制相似问题