在亞馬遜VPC,在兩個節點我已經安裝的RabbitMQRabbitMQ的HA羣集
在節點1中,我跑以下命令
#Node 1
/etc/init.d/rabbitmq-server stop
rabbitmq-server -detached
rabbitmqctl start_app
rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}'
在節點2上,我跑了下面的命令設置羣集
/etc/init.d/rabbitmq-server stop
rabbitmq-server -detached
rabbitmqctl stop_app
rabbitmqctl join_cluster [email protected]<PrivateIP>
rabbitmqctl start_app
rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}'
RabbitMQ節點位於Elastic Load Balancer之後。我運行了一個java程序來繼續將消息推送到rabbitmq。
案例1:rabbitmqctl list-queues - 顯示當java程序將消息推送到隊列時,quename和隊列消息數相同。
案例2:我停止了節點2上的rabbitmq,然後再次啓動它。檢查羣集狀態和隊列消息計數。消息計數正確(節點1和節點2上都是3330)
案例3:當java程序將消息推送到隊列時,我停止了節點1上的rabbitmq。 我檢查隊列消息計數在節點2,計數爲70。 我開始在節點1的RabbitMQ,然後檢查隊列計數是75
我想設置一個RabbitMQ的高可用性集羣,並確保沒有消息丟失。我已經在/etc/init.d/rabbitmq-server啓動了rabitmq上的sync_queue。
如果您能指出,爲什麼消息數量從大約3330下降到了70,並感謝您的建議和確保HA的最佳方式。
是..應用程序使用發行商確認。我已爲醫管局制定政策。我在/etc/init.d/rabbitmq-server腳本中添加sync_queue命令以同步服務器啓動時的隊列。現在正在工作。 - 謝謝 –