消息无法幸免,在Rabbitmq autocluster Kubernetes安装中Pod重新启动 [英] Messages don't survive Pod restarts in Rabbitmq autocluster Kubernetes installation

查看:103
本文介绍了消息无法幸免,在Rabbitmq autocluster Kubernetes安装中Pod重新启动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经根据公共存储库在Kubernetes中创建了带有3个Pod的Rabbitmq自动集群: https://github.com/kuberstack/kubernetes-rabbitmq-autocluster

I have created Rabbitmq autocluster with 3 Pods in Kubernetes according to public repository: https://github.com/kuberstack/kubernetes-rabbitmq-autocluster

队列中的消息无法幸免,在以下基本情况下Pod重新启动:

Messages in queue don't survive Pod restarts in the following basic scenario:

  1. 创建持久队列测试"
  2. 将消息发送到队列测试"
  3. 等待10分钟,然后删除广告连播1.
  4. 等待10分钟,然后删除广告连播2.
  5. 等待10分钟,然后删除广告连播3.
  6. 列出队列.

删除所有3个窗格后,队列"test"始终不存在.删除每个Pod后,群集即可正常工作,我可以发送和接收新消息.

After deleting all 3 pods, queue "test" always doesn't exist. After each pod deletion, cluster is working properly, I can send and receive new messages.

似乎Rabbitmq不会将现有消息复制到新Pod.如何强制Rabbitmq与新Pod共享所有消息?

It looks like Rabbitmq doesn't replicate existent messages to new pods. How can I force Rabbitmq to share all messages with new pods?

非常感谢,

RabbitMq启动日志: 日志文件

RabbitMq Startup Logs: Log file

推荐答案

您需要验证队列中的内容是否在集群中被镜像.

You need to verify if the queues have their contents mirrored accross the cluster.

RMQ允许管理员创建应用于某些/所有队列的策略,以便复制其中包含的消息.否则,仅在一个代理上存储一条消息,如果该代理发生故障,则使该消息不可用.

RMQ allows administrator to create policies applying to some/all queues, so that the messages contained inside are replicated. Otherwise one message is stored on only one broker, what makes it unavailable if that broker goes down.

该策略描述位于 https://www.rabbitmq.com/ha.html

这篇关于消息无法幸免,在Rabbitmq autocluster Kubernetes安装中Pod重新启动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆