1. 程式人生 > >分散式應用解耦利器rabbitmq

分散式應用解耦利器rabbitmq



訂閱模式:
work模式之允許傳送訊息給一個消費者,而訂閱模式可以傳送一個訊息給多個消費者。
訂閱模式是通過佇列繫結到交換機,由交換機告訴生產者傳送訊息到指定佇列。交換機的型別有fanout,direct、topic。
fanout交換機沒有路由鍵值
direct交換機有唯一路由鍵值
topic交換機通過萬用字元指定路由鍵值,最靈活。使用最廣泛!


通過訊息通知管理和訊息持久化保證訊息不丟失:
當客戶端任務程序拿到任務執行時有異常導致消失丟失,訊息通知管理機制保證訊息的不丟失,它是通過客戶端傳送確認訊息通知rabbitmq的,如果傳送端接收不到客戶端的消失確認會馬上重新發起訊息。設定autoAck =false通過後臺任務程序手動傳送關閉訊息,
而持久化能夠保證rabbitmq退出或崩潰後訊息不丟失。通過MessageProperties.PERSISTENT_TEXT_PLAIN設定持久化


rabbitmq叢集
rabbitmq操作的所有資料和狀態都可以複製到叢集所有節點,除了佇列
叢集配置方式:通過客戶端工具,配置檔案宣告
故障處理:可以任意啟動和停止叢集各階段,不建議在wlan進行叢集,推薦在lan中進行
硬碟還是記憶體:雖然記憶體節點能使交換機、佇列、提高效能,但不可靠,推薦所有節點為硬碟節點。
相同的Erlang Cookie確保叢集所有節點的互相通訊
通過負載均衡器連線rabbitmq叢集,如:HAProxy