首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有方法配置grpc节点客户端的生成方法名?

是否有方法配置grpc节点客户端的生成方法名?
EN

Stack Overflow用户
提问于 2018-03-15 20:19:12
回答 1查看 2.2K关注 0票数 1

我希望使用grpc-node客户端与Go中使用go-micro框架构建的微服务进行对话。我遇到了一个问题,go-micro使用句点(.)来分隔名称空间和方法名称,而grpc-node斜杠(/)定义方法名。是否需要配置此模式以使这两个进程相互对话?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-15 21:54:25

gRPC over HTTP/2协议文档将路径定义为:

Path→":path“/”Service "/“{method name}

加上这个额外的音符

一些gRPC实现可能允许重写上面所示的Path格式,但强烈不鼓励这种功能。gRPC并没有破坏使用这种覆盖的用户,但我们不积极支持它,当路径不是上述形式时,某些功能(例如服务配置支持)将无法工作。

因此,Node gRPC客户端遵循规范,go-micro使用的替代格式似乎是在他们的代码生成插件(这里)中硬编码的。我会认为那是个小虫子。

尽管如此,在Node gRPC库中有一个可行的解决方法来匹配该方法名称格式。在节点中加载.proto文件时,每个客户端构造函数都有一个service成员,该成员是描述服务的普通JavaScript对象。它是方法名到方法定义的映射,每个方法定义都包含一个path成员。您可以修改每个方法的路径,以匹配进行微使用的模式,然后将得到的服务对象传递给grpc.makeGenericClientConstructor,以获得连接到修改后的服务的新客户端构造函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49308482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档