Protocol buffers 推荐的分发GRPC客户端的机制是什么?
我已经创建了一个Protocol buffers 推荐的分发GRPC客户端的机制是什么?,protocol-buffers,microservices,grpc,service-discovery,Protocol Buffers,Microservices,Grpc,Service Discovery,我已经创建了一个GRPC服务器,并希望以各种语言向其分发“SDK”客户端 我可以使用proto命令(例如python)相对轻松地生成客户机: 类似地,对于java/ruby等 需要手动将生成的代码复制到客户端应用程序 我宁愿我的消费者不必自己创建生成的LIB并集成它们。(尤其是在向服务添加新功能时) 例如,在python的上下文中,按照 pip安装MyProtoClient 是否有机制将生成的库打包到适当的规范包管理器(即pip/maven/npm等) 此外,是否有一种方法可以调用服务本身来生成
GRPC
服务器,并希望以各种语言向其分发“SDK
”客户端
我可以使用proto
命令(例如python
)相对轻松地生成客户机:
类似地,对于java/ruby
等
需要手动将生成的代码复制到客户端应用程序
我宁愿我的消费者不必自己创建生成的LIB并集成它们。(尤其是在向服务添加新功能时)
例如,在python
的上下文中,按照
pip安装MyProtoClient
是否有机制将生成的库打包到适当的规范包管理器(即pip
/maven
/npm
等)
此外,是否有一种方法可以调用服务本身来生成源库(或返回它正在实现的相应proto?没有一个项目专门用于为生成的源代码生成包。googleapis'/是一个针对多种语言的项目,但它也有自己的代码生成,并且是混合在一起的。您可以看到(对于所有这些API,请查看特定的API,如Pub/Sub)
gRPC服务器可以通过公开其定义。每种语言都有一个预构建的服务实现。例如,在Java中是
io.grpc.protobuf.services.ProtoReflectionService
,而在Go中是google.golang.org/grpc/reflection
。该服务不返回.proto文件,而是返回“描述符”,这是protobuf反射和代码生成工具使用的正常格式。您是否在寻求一种简单的方法,以各自的语言为RPC客户端推送包?现在,您必须生成它们并将它们推送到各个存储库中,并在找到它们的位置的包管理器中指定它们。例如,在npm中,这是npm注册表,Ruby是gem注册表,等等。
python -m grpc_tools.protoc -I. --python_out=/tmp/python --grpc_python_out=/tmp/python MyProtoc.proto