gpt4 book ai didi

rabbitmq - RabbitMQ 集群能否被应用程序用作单一端点?

转载 作者:行者123 更新时间:2023-12-05 03:59:19 34 4
gpt4 key购买 nike

  • RabbitMQ 集群中有如下三个节点。
  • 在 RabbitMQ 中,有两个队列,q1q2
  • q1q2 的主副本分布在不同的节点上。两个队列都被其他节点镜像。
  • 三个节点前面有一个负载均衡器。
  • AMQP(节点端口 5672)和管理 HTTP API(节点端口 15672)由负载均衡器公开。

enter image description here

当应用程序通过负载均衡器建立连接时,它可能会到达后面的随机 RabbitMQ 节点。这对应用程序是不可见的。

问题:

  1. 无论应用程序到达哪个 RabbitMQ 节点,它都可以通过单个连接在单个 AMQP channel 中使用两个队列吗?

  2. 无论请求命中哪个 RabbitMQ 节点,应用程序都可以调用管理 HTTP API 吗?

最佳答案

当 RabbitMQ 被设置为一个集群并且您的队列在它们之间进行镜像时,您连接到哪个节点并不重要。因为队列的 AMQP 连接将自动路由到包含主队列的节点,这由 RabbitMQ 内部处理。因此,如果在队列 q1 上发布或消费的请求到来,它将被路由到 Node #1

您问题的答案。

  1. 不建议在单个 AMQP 连接中使用多个队列。一个消费进程的异常可能会导致连接关闭,从而中断另一个进程。

  2. 无论请求命中哪个 RabbutMQ 节点,应用程序都可以调用管理 HTTP API。一旦启用 RabbitMQ 集群中的管理插件,所有节点都将接受管理 HTTP API 请求。

引用:https://www.rabbitmq.com/clustering.html

关于rabbitmq - RabbitMQ 集群能否被应用程序用作单一端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57320040/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com