懶人學(xué)習(xí)的過(guò)程就是工作中老大讓干啥讓做啥就研究研究啥,國(guó)慶放假回來(lái)的周末老大通過(guò)釘釘給我布置了個(gè)任務(wù), RabbitMQ高可用解決方案,我想說(shuō)釘釘太坑了:
這是國(guó)慶過(guò)后9號(hào)周日晚上下班給的任務(wù),我周一看到的時(shí)候一看,下周五,那豈不是21號(hào),時(shí)間是如此的充裕!那不還早呢么。。恰巧同學(xué)要面試了9號(hào)晚上一起吃飯,然后問(wèn)了我?guī)讉€(gè)算法,然后被鄙視了。。他說(shuō)我一個(gè)前端都比你做后臺(tái)的算法牛逼,你請(qǐng)客吧-。-于是周一到周三光學(xué)算法了(程序員為了吹牛逼,哪有啥節(jié)操?。┲钡街芩睦洗笳f(shuō),明天任務(wù)到期了!研究咋樣了!此時(shí)才恍然大悟,釘釘你個(gè)坑貨,下周五是14號(hào)??!
RabbitMQ 高可用集群
簡(jiǎn)單配置
對(duì)于RabbitMQ 高可用集群的說(shuō)明,我覺(jué)得這篇文章講的挺詳細(xì)的,就不說(shuō)了。配置集群的方式看官網(wǎng)就可以了 ,為了采取所謂的Active/Active方案,所以只能選鏡像模式了(3.x版本以上才支持).再抄一段解釋過(guò)來(lái)(與普通集群相比,其實(shí)質(zhì)和普通模式不同之處在于,消息實(shí)體會(huì)主動(dòng)在鏡像節(jié)點(diǎn)間同步,而不是在 consumer 取數(shù)據(jù)時(shí)臨時(shí)拉取。該模式帶來(lái)的副作用也很明顯,除了降低系統(tǒng)性能外,如果鏡像隊(duì)列數(shù)量過(guò)多,加之大量的消息進(jìn)入,集群內(nèi)部的網(wǎng)絡(luò)帶寬將會(huì)被這種同步通訊大大消耗掉。所以在對(duì)可靠性要求較高的場(chǎng)合中適用),在搭建好RabbitMq集群以后,
鏡像模式可以通過(guò)命令行為隊(duì)列添加同步策略,比如
為所有隊(duì)列應(yīng)用鏡像模式的策略
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
或者指定指定隊(duì)列名的:
rabbitmqctl set_policy yu-ha "^yu" '{"ha-mode":"exactly","ha-params":2,"ha-sync-