就像标题说的。有没有办法在. NET中结合使用gRPC和某种消息代理/队列?它不一定是RabbitMQ。我愿意使用替代品。
我想从1个客户端发送消息到2个服务器,但我需要防止2个服务器同时处理请求,因此需要消息队列/代理。
nmpmafwu1#
你可以使用Azure Service Bus执行此操作。客户端可以在内部部署或Azure中。服务器1和2也是如此。注意:您应该能够将gRPC发送到Azure服务总线,但您可能需要使用HTTP/REST函数进行主题/订阅,以将消息发送到服务器1或2。另一种要考虑的方法是:https://grpc.io/blog/grpc-load-balancing/
oyjwcjzk2#
我想最好的回答你的问题,我假设你想使用rabbitmq和grpc的原因是因为你想在仍然使用rpc模式的同时有更好的客户机到服务器的解耦,记住这一点,这可能是你实际需要的东西:
nwlqm0z13#
Kafka和confuent平台支持grpc和google proto-buffer作为序列化模式。
3条答案
按热度按时间nmpmafwu1#
你可以使用Azure Service Bus执行此操作。客户端可以在内部部署或Azure中。服务器1和2也是如此。
注意:您应该能够将gRPC发送到Azure服务总线,但您可能需要使用HTTP/REST函数进行主题/订阅,以将消息发送到服务器1或2。
另一种要考虑的方法是:
https://grpc.io/blog/grpc-load-balancing/
oyjwcjzk2#
我想最好的回答你的问题,我假设你想使用rabbitmq和grpc的原因是因为你想在仍然使用rpc模式的同时有更好的客户机到服务器的解耦,记住这一点,这可能是你实际需要的东西:
1.谷歌protobuf是你的服务之间的合同
其思想是,客户端通过两个通道连接到队列,一个通道用于发送消息,您可以将目的地指定为特定的服务(在您的场景中为service 1);二是应答信道,其中服务1将向客户机发回消息。
nwlqm0z13#
Kafka和confuent平台支持grpc和google proto-buffer作为序列化模式。