栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

通过同一连接访问多个gRPC服务

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过同一连接访问多个gRPC服务

为什么每个grpc服务都需要拨不同的套接字?

你不知道 您可以创建一个

grpc.ClientConn
并将其传递给多个
pb.New*Client()
功能,它们将共享相同的连接。

func main() {    cc, err := grpc.Dial("localhost:6000", grpc.WithInsecure())    if err != nil {        log.Fatal(err)    }    c1 := pb.NewSubscriberServiceClient(cc)    c2 := pb.NewDropperServiceClient(cc)}

然后使用此接口为每个服务实现客户端grpc函数,而不是为每个服务创建新的结构

pb.go
文件中生成的代码完成了执行RPC所需的一切。除非您有特殊的逻辑要在每次执行呼叫时自动发生,否则您不必实现任何客户端功能。

如果这两个服务具有唯一的方法名称,则可以将它们放在相同的结构中,这样就不必为了小幅方便而分别使用它们:

type SubscriberDropper struct {    pb.SubscriberServiceClient    pb.DropperServiceClient}func main() {    // ... as above ...    sd := &SubscriberDropper{c1, c2}}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448266.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号