ActiveMQ是一款來自於apache開源組織的符合JMS1.1規範的高性能、可擴展的、穩定的、安全的消息中間件(MOM)。它不僅提供了JMS規範的基本實現,同時還提供了許多外加功能,如:跨多語言和平臺的支持、對於broker的JMX方式管理、主從模式的可用性、消息分類、位置關聯的消費優先級、通過消費者歷史訂閱消息追溯消費者特徵、處理低速消費狀況等特性。
使用MOM動機:
在原有未使用MOM產生的部分主要問題:
1:在隨着系統功能不斷的增多、業務流程複雜度不提升,使得系統模塊之間依賴
關係錯綜複雜、耦合高
2:業務本身主次劃分,如在修改用戶信息業務中含信息變更和相關郵件、短信等 相關增值業務必須在主流程中完成
3:和第三方平臺介入:由於交互系統雙方之間的處理能力不同或者或者業務方面
的請求處理能力限制,在業務量突然增加情況下,平臺自身業務
處理能力受到驗證影響
引入MOM後
1:模塊之間相互依賴轉換爲對MOM的依賴,降低模塊之間的依賴和耦合
2: 業務主流程只關心核心,增值業務有MOM的消費者異步處理,提高主流程的
處理效能
3: 引入MOM作爲平臺之間的緩衝區,降低了對 方的之間依賴
使用ACTIVEMQ的動機:
1:當然就是開源、免費了
2: ActiveMQ的高性能、可擴展性、穩定性
3: ActiveMQ提供了很多的實用附加特性
使用ACTIVEMQ的安裝和使用:
在這裏主要說一下ACTIVEMQ兩種災備方案優缺點
1:pure-master-slave模式中由於主備之間有同步消息,在高併發情況下信息同步處理會到大量網絡IO,同時會增加主機的處理負擔,嚴重的情況下會導致主機無響應
2: jbdc-master-slave模式中主備之間共享數據元,避免上面由於消息同步帶來的
資源消耗。但是由於是共享數據庫數據源,所有數據源會成爲系統的單點,當然數據庫已經有成熟的熱備方案了。
ACTIVEMQ的監控:
由於ACTIVEMQ在系統擔任了中介者角色,我們就必須它的服務狀況進行必要的監控。
1:使用系統自帶的JMX API
2:使用開源軟件如ZABBIX