当前位置: 首页 > 知识库问答 >
问题:

消息无法在Rabbitmq autocluster Kubernetes安装中通过Pod重新启动

白阳煦
2023-03-14

我已经根据公共存储库:https://github.com/kuberstack/kubernetes-rabbitmq-autocluster在Kubernetes中用3个pod创建了Rabbitmq autocluster

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

  1. 创建持久队列“测试”
  2. 将消息发送到队列“测试”
  3. 等待10分钟并删除pod 1。
  4. 等待10分钟并删除pod 2。
  5. 等待10分钟并删除pod 3。
  6. 列出队列。

删除所有3个POD后,队列“测试”始终不存在。每次删除pod后,集群正常工作,我可以发送和接收新消息。

看起来Rabbitmq不会将现有的消息复制到新的POD上。我如何强制Rabbitmq与新的POD共享所有消息?

非常感谢,

RabbitMq启动日志:日志文件

共有1个答案

卫甫
2023-03-14

您需要验证队列是否将其内容镜像到集群中。

RMQ允许管理员创建应用于某些/所有队列的策略,以便复制包含在其中的消息。否则,一条消息只存储在一个代理上,如果该代理关闭,它将不可用。

政策说明见https://www.rabbitmq.com/ha.html

 类似资料:
  • 我有一个Kafka集群正在运行,当重新启动应用程序(消费者)时,它会跳过一些在应用程序关闭时推送到主题的消息。 当应用程序启动时,我可以看到它读取带有偏移量的消息,然后将偏移量推送到。然后当应用程序关闭时,带有偏移量的消息被推送到主题。重启应用程序后,它读取并将其偏移量设置为,因此跳过。 这是我的配置:

  • 问题内容: 以下是我运行时遇到的错误: 问题答案: 在没有空格的路径中创建您的virtualenv环境。这就是为什么它发生的原因: 创建环境时,它会建立一个目录。在该目录中是与环境有关的所有可执行文件。有些是脚本。如您所知,hashbang用来告诉系统使用什么解释程序来运行脚本。您可能经常在脚本顶部看到此信息: 如果脚本位于,则告诉系统运行以下命令来执行脚本: 就您而言,virtualenv正在创

  • 我正试图通过Composer(OS X El Capitan 10.11.3)安装Yi2。 是我干的 然后 我也有类似的错误 我不知道为什么会这样。我试图重新安装(composer和asset插件)、diff版本以及yiisoft/yii2.0的相同问题。9需要bower asset/jquery 2.2@稳定的

  • Python: 2.7.12 Pip: 8.1.1 当I时,显示如下: 例外情况: Traceback(最近的调用最后): 文件“/usr/lib/python2.7/dist packages/pip/basecommand.py”,第209行,在main中 状态=self.run(选项,参数) 文件"/usr/lib/python2.7/dist-包/pip/命令/install.py",第3

  • 我有一个问题作曲家和Laravel。我找到了很多类似的话题,但它不起作用。所以当我尝试安装Laravel时,它会显示给我:安装laravel/laravel(v5.5.22) > 安装laravel/laravel(v5.5.22):加载从缓存中创建的项目 @php-r“文件存在('.env')| |复制('.env.example','.env');”加载具有包信息更新依赖项(包括require

  • 我试图通过Bundler在MacBook Air M1上安装CocoaPods,但我一直遇到这个错误。我用的是罗塞塔终端,但没用。