RabbitMQ集群部署(三)——鏡像集群模式部署及常見(jiàn)問(wèn)題
本文分享自天翼云開(kāi)發(fā)者社區(qū)《RabbitMQ集群部署(三)——鏡像集群模式部署及常見(jiàn)問(wèn)題》,作者:芋泥麻薯
鏡像集群模式與普通集群模式的主要區(qū)別在于. 無(wú)論queue的元數(shù)據(jù)還是queue中的消息都會(huì)同時(shí)存在與多個(gè)實(shí)例上.要開(kāi)啟鏡像集群模式,需要在后臺(tái)新增鏡像集群模式策略. 即要求數(shù)據(jù)同步到所有的節(jié)點(diǎn).也可以指定同步到指定數(shù)量的節(jié)點(diǎn).
這種方式的好處就在于, 任何一個(gè)服務(wù)宕機(jī)了,都不會(huì)影響整個(gè)集群數(shù)據(jù)的完整性, 因?yàn)槠渌?wù)中都有queue的完整數(shù)據(jù), 當(dāng)進(jìn)行消息消費(fèi)的時(shí)候,連接其他的服務(wù)器節(jié)點(diǎn)一樣也能獲取到數(shù)據(jù).
缺點(diǎn):
(1): 性能開(kāi)銷大: 因?yàn)樾枰M(jìn)行整個(gè)集群內(nèi)部所有實(shí)例的數(shù)據(jù)同步
(2):無(wú)法線性擴(kuò)容: 因?yàn)槊恳粋€(gè)服務(wù)器中都包含整個(gè)集群服務(wù)節(jié)點(diǎn)中的所有數(shù)據(jù), 這樣存儲(chǔ)瓶頸會(huì)出現(xiàn)在每個(gè)節(jié)點(diǎn)存儲(chǔ)上。
1、開(kāi)啟鏡像同步,注意,該操作是針對(duì)vhost的,即如果有多個(gè)vhost,則需要配置多次
rabbitmqctl set_policy -p "/test_host" ha-all "^" '{"ha-mode":"all", "ha-sync-mode":"automatic"}'
rabbitmqctl set_policy -p "/" ha-all "^" '{"ha-mode":"all", "ha-sync-mode":"automatic"}'
rabbitmq部署中的常見(jiàn)的問(wèn)題
1、如果是機(jī)器是第二次安裝,則需要?jiǎng)h除mnesia目錄
rm -rf /var/lib/rabbitmq/mnesia
2、如果需要指定rabbitmq的端口地址、節(jié)點(diǎn)聯(lián)通地址等,可以修改配置和添加對(duì)應(yīng)環(huán)境變量
vi /etc/rabbitmq/rabbitmq.config
[
{rabbit, [
{tcp_listeners, [{
# 監(jiān)聽(tīng)客戶端連接的端口號(hào),默認(rèn)5672
"0.0.0.0", 28889}
]},
{cluster_partition_handling, autoheal},
{loopback_users, []}
]},
{log_levels, [
{connection, info}
]},
{rabbitmq_management, [
{listener, [
# managenmet服務(wù)監(jiān)聽(tīng)客戶端連接的端口號(hào),默認(rèn)15672
{port, 28890},
{ip, "0.0.0.0"},
{ssl, false}]}
]}
].
vi /etc/rabbitmq/rabbitmq-env.conf
#日志文件路徑
RABBITMQ_LOG_BASE=/var/log/rabbitmq
#epmd端口地址,默認(rèn)4369
export ERL_EPMD_PORT=28891
#RabbitMQ 節(jié)點(diǎn)內(nèi)部通信的端口號(hào),默認(rèn)25672
RABBITMQ_DIST_PORT=28892
3、卸載流程
service rabbitmq-server stop
yum -y remove erlang-*
yum -y remove rabbitmq-server.noarch
rm -rf /var/lib/rabbitmq
rm -rf /user/lib/rabbitmq
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。