负载平衡器在RabbitMQ中的工作原理
我是RabbitMQ的新手,所以请原谅我提出一些琐碎的问题: 1) 在RabbitMQ中进行集群的情况下,如果一个节点出现故障,则将负载转移到另一个节点(而不停止其他节点)。类似地,我们还可以向现有集群添加新的新节点,而无需停止集群中的现有节点。对吗 2) 假设我们从一个rabbitMQ节点开始,并在其上创建100个队列。现在制作人开始以更快的速度发送消息。为了处理这个负载,我们添加了更多的节点并创建了一个集群。但队列仅存在于第一个节点上。现在如何在节点之间平衡负载?如果我们需要添加更多队列,我们应该在哪个节点上添加它们?或者我们可以使用负载平衡器添加它们 提前谢谢 1) 在RabbitMQ中进行集群的情况下,如果一个节点出现故障,则将负载转移到另一个节点(而不停止其他节点)。类似地,我们还可以向现有集群添加新的新节点,而无需停止集群中的现有节点。对吗 如果在其上创建队列的节点失败,rabbitmq将在集群中为该队列选择一个新的主节点,只要该队列的镜像已启用。集群根据您可以定义的策略提供HA 2) 假设我们从一个rabbitMQ节点开始,并在其上创建100个队列。现在制作人开始以更快的速度发送消息。为了处理这个负载,我们添加了更多的节点并创建了一个集群。但队列仅存在于第一个节点上。现在如何在节点之间平衡负载 负载不平衡。分布式集群提供HA而不是负载平衡。您的请求将被重定向到队列所在集群中的节点 如果我们需要添加更多队列,我们应该在哪个节点上添加它们?或者我们可以使用负载平衡器添加它们 这取决于您的用例。有些人使用循环,在不同的节点上创建队列 总之负载平衡器在RabbitMQ中的工作原理,rabbitmq,load-balancing,Rabbitmq,Load Balancing,我是RabbitMQ的新手,所以请原谅我提出一些琐碎的问题: 1) 在RabbitMQ中进行集群的情况下,如果一个节点出现故障,则将负载转移到另一个节点(而不停止其他节点)。类似地,我们还可以向现有集群添加新的新节点,而无需停止集群中的现有节点。对吗 2) 假设我们从一个rabbitMQ节点开始,并在其上创建100个队列。现在制作人开始以更快的速度发送消息。为了处理这个负载,我们添加了更多的节点并创建了一个集群。但队列仅存在于第一个节点上。现在如何在节点之间平衡负载?如果我们需要添加更多队列,我
- 供HA在集群中使用李>
- 要平衡节点间的负载,请使用李>
- 如果您希望负载平衡,请查看队列本身。它们允许您从上游队列获取下游队列上的消息
- 让我试着回答您的问题,这通常是dev可能遇到的大多数问题
问题1)在RabbitMQ中进行集群的情况下,如果一个节点出现故障,则将负载转移到另一个节点(而不停止其他节点)。类似地,我们还可以向现有集群添加新的新节点,而无需停止集群中的现有节点。对吗
答:完全正确(如果rabbitMQ在单个主机上运行),但rabbitMQ的队列在集群上的行为不同。默认情况下,队列只存在于集群中的一个节点上。但是
Rabbit(2.6.0)
为队列提供了内置的主动冗余选项:镜像队列
。声明镜像队列就像声明普通队列一样;您传递了一个名为x-ha-policy
的额外参数;告诉Rabbit您希望在群集中的所有节点上镜像队列这意味着,如果在声明队列后将新节点添加到集群中,它将自动开始承载队列的从属副本。
问题2)假设我们从一个rabbitMQ节点开始,并在其上创建100个队列。现在制作人开始以更快的速度发送消息。为了处理这个负载,我们添加了更多的节点并创建了一个集群。但队列仅存在于第一个节点上。现在如何在节点之间平衡负载?如果我们需要添加更多队列,我们应该在哪个节点上添加它们?或者我们可以使用负载平衡器添加它们
此问题有多个子问题
现在如何在节点之间平衡负载
设置为all时,x-ha-policy会告诉Rabbit您希望在集群中的所有节点上镜像队列。这意味着,如果在声明队列后将新节点添加到集群中,它将自动开始承载队列的从属副本
我们应该在哪个节点上添加它们
回答上面的问题
我们可以使用负载平衡器添加它们吗
不,但可以(您必须在LB中调用rabbitMQ API,这不是最佳实践方法),负载平衡器用于弹性消息传递基础架构。集群节点是负载平衡器后面的服务器,生产者和消费者是客户