使用rabbitmq集群进行Logstash

时间:2016-04-06 21:35:23

标签: rabbitmq cluster-computing logstash

我在HAproxy负载均衡器后面有一个Rabbitmq的3节点集群。当我关闭一个节点时,Rabbitmq成功地将队列切换到其他节点。但是,我注意到Logstash会停止从队列中提取消息,除非我重新启动它。这是rabbitmq运作方式的问题吗?即它会停用所有活跃的消费者。我不确定log stash是否具有任何重试功能。有人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:2)

引用rabbit mq文档,首先是clustering的页面

  

什么是复制?操作a所需的所有数据/状态   RabbitMQ代理程序在所有节点上进行复制。这个例外   是消息队列,它们默认驻留在一个节点上,尽管它们是   是可见的,并且可以从所有节点到达。

high availability

  

从镜像队列中消耗的客户端可能希望知道这一点   他们消耗的队列已经故障转移。当一个   镜像队列故障转移,了解已发送哪些消息   丢失的消费者,以及所有未被承认的消息   用重新传送的标志集重新传送。消费者可能希望   知道这会发生。

     

如果是这样,他们可以使用参数x-cancel-on-ha-failover set来使用   为真。他们的消费将在故障转移时被取消和a   发送消费者取消通知。那就是消费者   责任重新发布basic.consume再次开始消费。

那么,这一切意味着什么:

  • 您必须镜像队列
  • 消费者应使用手动确认
  • 消费者应该自己重新连接

所以问题的答案是否定的,这对于rabbitmq来说不是问题,只是它的工作原理。由客户重新连接。