【问题标题】:RabbitMQ RPC load balancingRabbitMQ RPC 负载均衡
【发布时间】:2020-11-15 20:16:08
【问题描述】:

RabbitMQ RPC(请求-响应)通信模型是否支持负载均衡?

我见过很多使用 RPC 和 RabbitMQ 的例子,但没有一个提到负载平衡支持。

如果客户端能够向请求队列(或交换器)发送请求,并且其中一台服务器将接收请求、处理它并向客户端返回响应,那就太好了。通过专用的返回队列或直接回复技术。

RabbitMQ 是否支持这样的东西?

【问题讨论】:

    标签: rabbitmq load-balancing rpc request-response


    【解决方案1】:

    这很容易通过在每个服务器的请求队列中都有一个消费者来实现。

    每个服务器都应该配置其QoS,并避免在消息被处理之前确认消息,这样代理只会将消息发送到准备好的服务器。

    【讨论】:

    • 谢谢。如果两台服务器都准备好了,消息会发送到两者吗?两者都会处理,只有一个会确认?还是消息代理只会将每条消息发送到其中一台服务器?仍然可以使用“直接回复”吗?
    • @Marco 队列中的消息只投递一次,如果两个消费者都准备好了,那么只有其中一个会收到消息(除非消息被nack或者与消费者的连接丢失,在这种情况下它已重新交付)。 RPC 建立在 RabbitMQ 功能之上,RabbitMQ 本身无论如何都不知道回复,所以是的,仍然可以使用它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多