目錄
1、什麼是消息中間件
消息中間件=message queue。
發佈/訂閱模式(Pub/Sub)稱之爲主題模式,特定的一條消息可以被多個消費者所接收,只要消費者訂閱了某個主題。消息生產者(發佈者)將消息發送到某個稱爲主題(Topic)的虛擬通道中,Topic可以被多個消費者訂閱,類似於廣播的方式。發佈/訂閱模式採用PUSH的方式傳送消息,Subscriber只需保持在線即可。Subscriber分爲臨時性的和持久性的,當Sub離線時,MQ會爲持久性的Sub持久化消息,當Sub恢復時會重新收到消息。
2、消息中間件的組成
2.1 Broker
消息服務器,作爲server提供消息核心服務
2.2 Producer
消息生產者,業務的發起方,負責生產消息傳輸給broker,
2.3 Consumer
消息消費者,業務的處理方,負責從broker獲取消息並進行業務邏輯處理
2.4 Topic
主題,發佈訂閱模式下的消息統一彙集地,不同生產者向topic發送消息,由MQ服務器分發到不同的訂閱者,實現消息的廣播
2.5 Queue
隊列,PTP模式下,特定生產者向特定queue發送消息,消費者訂閱特定的queue完成指定消息的接收
2.6 Message
消息體,根據不同通信協議定義的固定格式進行編碼的數據包,來封裝業務數據,實現消息的傳輸
3、應用場景
異步通信
應用解耦
緩解流量高峯壓力
高性能
高可用
橫向拓展
4、什麼是ActiveMQ
ActiveMQ是java開發的消息中間件服務,支持多種協議(AMQP,MQTT,OpenWire,Stomp),而python與ActiveMQ的通信使用的是Stomp協議。STOMP即Simple Text Orientated Messaging Protocol,簡單文本定向消息協議,它提供了一個可互操作的連接格式,允許STOMP客戶端與任意STOMP消息代理(Broker)進行交互。