GRPC C ++ InProcessChannel'e C ++ 'dan nasıl bağlanılır?

Dec 21 2020

Ben ediyorum çalışırken JNI'yı alternatif olarak gRPC ve fikri Java / Android tarafında bağlı C ++ yan ve istemci üzerinde gRPC hizmetini sahip olmaktır. Mümkün olan en iyi performansı elde etmek için süreç içi kanalı kullanmayı tercih ederim (önerilerinize açık).

C ++ gRPC sunucusuna ile nasıl bağlanabilirim InProcessChannel()? Sorun şu ki ihtiyaç vardır geçmesi bir nameJava'nın için InProcessServerBuilder.

C ++ gRPC testlerinde (örn. Burada ) setini bulamıyorum ve InProcessChannelsadece saf C ++ 'da kullanılabileceğini düşündürüyor (hem sunucu hem de istemci C ++' dadır ). C ++ hizmeti ve Java istemcisi için hala mümkün mü?

PS. Java-server + Java-client için yapabildim.

PPS. Birkaç benzer QnA buldum, örneğin. burada ama hala birlikte çalışmanın bir yolu olup olmadığını merak ediyorum (muhtemelen bazı 3. taraf kanal uygulamalarıyla). Unix Domain Sockets üzerinden çalışabilir mi?

Yanıtlar

3 EricAnderson Dec 22 2020 at 06:14

C ++ ve Java "işlem içi" aktarımları, birden çok dilin aynı süreçte olduğu durumlar için uygun şekilde adlandırılmadı. İşlem içi taşımalar yalnızca her bir dil içinde çalışır; C ++ ve Java işlem içi aktarımları etkileşim kuramaz.

Normal HTTP / 2 istemcisini / sunucusunu kullanmalısınız.

İstediğiniz gibi bir şey, belki bir "paylaşılan hafıza" aktarımı olarak var olabilirken, bu önemli bir iştir ve bakım yükü için nispeten az kullanım görür.

1 4ntoine Dec 22 2020 at 20:24

Eric'in Anderson cevabını doğru olarak kabul ettim. Ancak ben nasıl yaptığını bilmek yararlı olabilir çalışan Unix Alanı soketli.

Android için yama yapıp onu kullanmak zorunda kaldım . Dikkatinizi Android'e özgü bazı izin notlarına verin .netty