最近在做一个发布订阅模型的服务.
首次尝试用了用 grpc, 发现用的很难受.
我的理解, grpc 只适合 单次调用 的模型, 这个单次调用可以一次传入多个请求, 也可以返回多个结果(也就是 grpc 里的 stream 概念), 但这种调用, 是不适合做长服务的. 最好能在有限时间内尽快结束调用.
个人的结论是, grpc 不适合做发布订阅模型, 虽然理论上可以通过 stream 解决, 但不符合 rpc 的理念.
包括 grpc 里的单次传入 /返回分配 id 概念(一旦 id 分配达到最大值, 直接 close 连接), 其实都是这种理念的体现(最好能在有限时间内尽快结束调用).
请大家评论下我的想法正确性
1
undeflife 2020-03-08 22:15:27 +08:00
Google's Cloud Pubsub 就是用 grpc 实现的
客户端代码 你可以参考 https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto |