我们有一个由多个微服务组成的系统。对于通知事件,我们使用 RabbitMq 队列和交换器。对于同步请求,我们使用 HTTP/REST。
我们希望用 RabbitMq RPC 替换 REST。在最初的快乐之后,我们检查了RabbitMQ RPC实现,对于一个简单的同步调用来说它看起来相当复杂。
RabbitMQ RPC的开销还可以吗?您推荐更好的选择吗?我喜欢与gRPC不同,使用RabbitMQ RPC不需要维护protobuf然后生成客户端和服务器库。
我知道这是一个老问题,但它可能对某人仍然有用。
我已经使用 RabbitMQ RPC 在 .NET 项目中的微服务之间进行通信,这非常棒。
使用像“EasyNetQ”这样的包,它的功能类似于中介者模式:您有一个请求 DTO、一个响应 DTO 和一个请求处理程序。
您发送请求 DTO,处理程序处理它,然后您返回响应 DTO。
无需担心发送/接收队列; “EasyNetQ”使用 DTO 命名空间处理该问题。
我认为当你的微服务是用不同的编程语言开发时,GRPC会是更好的选择。