V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hidemyself
V2EX  ›  程序员

关于 gRPC 的问题请教一下各位

  •  
  •   hidemyself · Apr 15, 2022 · 1634 views
    This topic created in 1482 days ago, the information mentioned may be changed or developed.
    假设我现在有一台服务器上部署了两个 gPRC 服务端,A 和 B 。

    A 服务用 C++写的,gRPC 服务端口为 50051 ;
    B 服务用 Java 写的,如果 gRPC 的服务端口也配置成 50051 ,就会提示端口冲突。

    有没有办法让不同语言写的 gRPC 服务使用同一个端口?

    主要是因为有个 python 的 client 在另一台服务器上要分别调用 A,B 服务。
    5 replies    2022-04-15 14:55:39 +08:00
    sujin190
        1
    sujin190  
       Apr 15, 2022   ❤️ 1
    显然不行,但是似乎你可以再在前面挂个 nginx 代理设置到 50051 端口,根据方法路径分别转发到后面不同的服务去
    2kCS5c0b0ITXE5k2
        2
    2kCS5c0b0ITXE5k2  
       Apr 15, 2022   ❤️ 1
    你要找的时不时 grpc 网关
    hidemyself
        3
    hidemyself  
    OP
       Apr 15, 2022
    @emeab 对,搜了下好像需要 gRPC-gateway 这个东西,我再去研究研究
    hidemyself
        4
    hidemyself  
    OP
       Apr 15, 2022
    @sujin190 我们所有的服务接口,出入参都是统一的 protobuf 管理的,调用不需要写方法路径。。
    我对 gRPC 还不是很了解,我再研究下
    sujin190
        5
    sujin190  
       Apr 15, 2022
    @hidemyself #4 grpc 调用的时候不写方法名通过 protobuf 里的参数来区分啥调用的?如果是标准的 grpc 的话,nginx 的 location 可以依据方法名来匹配啊,和 http 服务的 path 路径一样,你两个服务的总不至于方法名也是一样的吧

    https://segmentfault.com/a/1190000040268472
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3880 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 04:29 · PVG 12:29 · LAX 21:29 · JFK 00:29
    ♥ Do have faith in what you're doing.