MQ

IBM MQ

徠MQ(Message Queue)消息隊列,是基礎數據結構中“先進先出”的一種數據結構。一般用來解決應用解耦,非同步消息,流量削峰等問題,實現高性能,高可用,可伸縮和最終一致性架構。

MQ 介紹


MQ(Message Queue)消息隊列,是基礎數據結構中“先進先出”的一種數據結構。指把要傳輸的數據(消息)放在隊列中,用隊列機制來實現消息傳遞——生產者產生消息並把消息放入隊列,然後由消費者去處理。消費者可以到指定隊列拉取消息,或者訂閱相應的隊列,由MQ服務端給其推送消息。
MQ的作用
消息隊列中間件是分散式系統中重要的組件,主要解決應用解耦,非同步消息,流量削鋒等問題,實現高性能,高可用,可伸縮和最終一致性架構。
解耦:一個業務需要多個模塊共同實現,或者一條消息有多個系統需要對應處理,只需要主業務完成以後,發送一條MQ,其餘模塊消費MQ消息,即可實現業務,降低模塊之間的耦合。
非同步:主業務執行結束后從屬業務通過MQ,非同步執行,減低業務的響應時間,提高用戶體驗。
削峰:高併發情況下,業務非同步處理,提供高峰期業務處理能力,避免系統癱瘓。
MQ的缺點
1、系統可用性降低。依賴服務也多,服務越容易掛掉。需要考慮MQ癱瘓的情況。
2、系統複雜性提高。需要考慮消息丟失、消息重複消費、消息傳遞的順序性。
3、業務一致性。主業務和從屬業務一致性的處理。

主要的MQ產品


主要徠的MQ產品包括:RabbitMQ、ActiveMQ、RocketMQ、ZeroMQ、Kafka、IBM WebSphere 等。

功能


· 跨任何商業IT系統連接應用程序和Web服務,提供完整的JMS(Java消息服務)支持,包括發布-訂閱。
· 對Web服務的整合化支持。
· 基於Eclipse的新工具—MQ Explorer,適用於Windows和Intel(x86),支持整個消息傳遞主幹的遠程和安全配置。
· WebSphere MQ V6.0.2增強了JMS和安全性,構建在WebSphere MQ V6.0中引入的新配置工具之上,該工具以新Eclipse插件的形式提供,可增強您的MQ Explorer控制台。
· 與WebSphere Application Server的消息傳遞服務無縫互操作。
· 支持行業標準安全套接字層(Secure Sockets Layer, SSL)安全性,並提供擴展安全版本來獲得高級安全特性。
· 支持推進現有FTP基礎設施,確保通過WebSphere MQ進行可靠、安全的文件傳輸。
· 支持的操作系統: AIX、 HP Unix、 i5/OS、 Linux、 Sun Solaris、 Windows、 z/OS。

操作程序


第一步是讓應用程序與隊列管理器連接。它通過 MQConnect 來進行此連接。下一步調用 MQOpen 為輸出打開一個隊列。然後應用程序調用MQPut 將其數據放到隊列上。要接收數據,應用程序調用 MQOpen 打開輸入隊列。應用程序調用MQGet 從隊列上接收數據。