【发布时间】:2018-01-28 13:59:56
【问题描述】:
我是 RabbitMQ 新手,在处理 RabbitMQ 集群时遇到了麻烦。
拓扑如下:
起初,一切都很好。 RabbitMQ node1 和 RabbitMQ node2 在一个集群中。 它们通过名为 autocluster 的 RabbitMQ 插件相互连接。
然后我删除 kubectl delete pod rabbitmq-1 的 pod rabbitmq-1。我发现 node1 中的 RabbitMQ 应用程序已停止。我不明白为什么 RabbittoMQ 如果检测到另一个节点的故障会停止应用程序。它没有任何意义。这种行为是由 RabbitMQ 还是 autocluster 设计的?能给我解惑吗?
我的配置是这样的:
[
{rabbit, [
{tcp_listen_options, [
{backlog, 128},
{nodelay, true},
{linger, {true,0}},
{exit_on_close, false},
{sndbuf, 12000},
{recbuf, 12000}
]},
{loopback_users, [<<"guest">>]},
{log_levels,[{autocluster, debug}, {connection, debug}]},
{cluster_partition_handling, pause_minority},
{vm_memory_high_watermark, {absolute, "3276MiB"}}
]},
{rabbitmq_management, [
{load_definitions, "/etc/rabbitmq/rabbitmq-definitions.json"}
]},
{autocluster, [
{dummy_param_without_comma, true},
{autocluster_log_level, debug},
{backend, etcd},
{autocluster_failure, ignore},
{cleanup_interval, 30},
{cluster_cleanup, false},
{cleanup_warn_only, false},
{etcd_ttl, 30},
{etcd_scheme, http},
{etcd_host, "etcd.kube-system.svc.cluster.local"},
{etcd_port, 2379}
]}
]
在我的例子中,启用了 x-ha-policy。
【问题讨论】:
-
如果你有能力升级,我发现在 kubernetes 上构建集群时,使用 rabbitmq 3.7+ 而不是 autocluster 更容易。
-
@lang2 谢谢你的建议,我试试看
标签: rabbitmq kubernetes rabbitmqctl