什么是 ActiveMQ?
ActiveMQ 是一種流行的訊息傳遞服務,可促進企業系統中大規模的不同資料,在本 ActiveMQ 教程中,我們概述了 ActiveMQ、它的優點、它的作業原理以及何時應該使用它,
什么是 ActiveMQ?
ActiveMQ 是一種流行的開源訊息傳遞服務,它構建在 Java 之上,它用作面向訊息的中間件 ( MoM ),
ActiveMQ 的設計目的是在兩個或多個應用程式之間發送訊息,就像所有面向訊息的中間件一樣,
這里推薦一個視頻課程:
https://www.bilibili.com/video/BV1f24y1N72X/?vd_source=0ba66e578821564652f75cbe299199c8
ActiveMQ 有什么用?
與任何其他訊息代理一樣,ActiveMQ 用作多個組件之間的通信橋梁,這些組件可以托管在單獨的服務器上或可以用不同的編程語言撰寫,
像這樣的訊息代理經常出現在企業系統中——或者任何具有復雜架構的系統中,實施的目標是在該系統的組件之間建立可靠的通信,
一個很好的例子是金融和銀行業,其中高可用性系統是必不可少的,速度在這個行業很重要,但比這更重要的是整個系統的可靠性,
盡管我們都希望一切都保持 100% 的正常運行時間,但服務離線的情況仍然很少見,在這種情況下你會怎么做?
如果沒有像 ActiveMQ 這樣的訊息代理,就會出現問題,
將您的訊息放入訊息佇列通常適用于這種情況,訊息不會立即傳送和處理,相反,它將在服務的另一端重新聯機時進行處理,
使用像 ActiveMQ 這樣的訊息代理,您可以確保您的訊息在服務器在線時得到傳遞,
上面的例子是一個小眾案例,但訊息傳遞的整體用例是異步調整流量的能力,可能存在服務仍然在線的情況,但它可能無法像訊息生成到系統中那樣快速地處理訊息,或者如果沒有一些填充,它可能無法處理突發事件,
因此,如果您有一個系統——無論何時何地,無論現在還是以后,發送訊息都是必須的——那么像 ActiveMQ 這樣的訊息代理就是您所需要的,
什么是 Apache ActiveMQ 代理?
Apache ActiveMQ 代理是 Java 訊息服務或 JMS 的實作,JMS 是一種 Java 規范,它允許應用程式以簡單和標準的方式在彼此之間來回發送資料,
在像 ActiveMQ 這樣的訊息傳遞系統出現之前,很難(如果不是不可能的話)“聯合”應用程式:
- 是用不同的語言寫成的,
- 駐留在異構平臺上,
- 使用不同的資料結構和協議,
Java 的早期目標是提供一種具有 C 的強大功能且不受其跨平臺問題阻礙的語言,JMS 的出現源于對將非常不同的系統彼此聯合的日益增長的需求,
在 ActiveMQ 之前,這意味著針對本機工具和庫構建源代碼,替代方案是在單獨的作業系統上直接移植或重寫應用程式,
JMS 和 ActiveMQ 有什么區別?
ActiveMQ 是一個 JMS 提供者,JMS 提供程式形成了軟體框架,以促進在應用程式中使用 JMS 概念,允許客戶端連接到它并使用這些訊息傳遞概念的 ActiveMQ 單個節點稱為“ActiveMQ Broker”,
因此,ActiveMQ 是一個實作 JMS 的訊息代理,使用 ActiveMQ 對許多企業都很重要——尤其是企業,
企業通過并購等商業行為感受到這種差異,這就需要維護越來越多樣化的業務應用程式集合,隨著企業的發展,允許所有這些平臺共享資料的需求也在增長,當今存在許多有助于解決此問題的體系結構模式,
其他 JMS 供應商
JMS 提供程式的其他一些示例是:
大黃蜂Q
兔MQ
索尼克MQ
Windows Azure 訊息傳遞
Apache 代理
ActiveMQ 只是您堆疊的一部分
ActiveMQ 只是您的開源堆疊的一部分,您可能正在利用其他技術,您還可以從更多開源技術中受益,構建您的組織理想的開源堆疊,使用 OpenLogic Stack Builder 從我們的堆疊專家那里獲取自定義報告,
堆疊生成器
ActiveMQ 架構概述
ActiveMQ 的結構由稱為訊息、佇列和主題的資料模式組成,
訊息就像它們聽起來的那樣,是可以在不同系統之間傳輸的資料有效負載,這些有效載荷可以具有與之關聯的標頭和屬性,這些標頭和屬性可以:
對它們進行分類
控制路由的各個部分
促進在連接的應用程式網路中移動有效載荷
這是一個基本的 JMS 結構,例如 ActiveMQ:
activemq 是如何作業的
負載本身可以是純 Java 實作中的任何 Java 物件,但它通常是某種形式的短信,請注意,文本也可以是標記格式,例如 XML 或 JSON,訊息傳遞系統的目的是以標準方式在異構系統之間移動這些有效負載,
ActiveMQ 作為企業級訊息傳遞解決方案
企業級訊息傳遞解決方案可以做到這一點,同時還保持資料完整性,保證沒有資料丟失,同時考慮到高可用性、安全性、可恢復性和其他常見的企業問題,
我們網路中的應用程式本身被認為是端點,它們有兩類,用于讀取或接收訊息的入站端點稱為消費者,用于將資料發送到訊息系統的出站端點稱為生產者,
這是以編程方式處理的,端點是在與訊息系統互動的程式的背景關系中定義的,
ActiveMQ 訊息如何作業
一旦訊息進入系統,它們就會被安排成兩種模式:佇列和主題,佇列是代理和客戶端生成和使用的訊息的FIFO(先進先出)管道,生產者創建訊息并將它們推送到這些佇列中,然后消費者應用程式輪詢和收集這些訊息,一次一條訊息,
主題是基于訂閱的訊息廣播頻道,當生產應用程式發送訊息時,“訂閱”該主題的多個接收者會收到訊息的廣播,在主題訊息傳遞的背景關系中,這個生產應用程式有時被稱為“發布者”,
所有這些組件都只是 JMS 規范的一部分,但并不是任何一個特定的軟體,為了在現實生活中實作該規范,我們可以創建 JMS 規范的特定于供應商的實作,稱為 JMS 提供程式,
總而言之,佇列和主題之間的主要區別是:
主題實作發布和訂閱作業流,
佇列實作負載平衡作業流,
ActiveMQ 佇列和主題之間差異的圖示,
ActiveMQ 關鍵函式
除了 JMS 之外,ActiveMQ 還提供了額外的功能,例如:
Java 的本機 ActiveMQ 連接工廠物件,
強大的可觀察性功能及其詳細的 JMX 指標和統計引擎,
通過 Jolokia 和 HawtIO 擴展儀表板,
JAAS 安全性,
多種連接協議,
本機 HA 和 DR 功能,
水平和垂直刻度的內置功能,
Apache ActiveMQ 5 與 Apache ActiveMQ 6
Apache ActiveMQ 5 實作了 JMS 1.1 規范,ActiveMQ 6 (Artemis) 將實施 JMS 2.0,
除了上述 JMS 概念之外,ActiveMQ 還提供持久性,這允許在代理崩潰時“重播”訊息,除此之外,持久性允許主題訂閱者在與代理的連接中斷時接收廣播訊息,
你應該使用 ActiveMQ 嗎?
ActiveMQ 是一個成熟且被廣泛采用的平臺,1,000 家公司使用它,它是迄今為止最靈活的 OSS 訊息代理,
似乎這還不夠,它還與Apache Camel一起發布,并與 Apache Camel 產品共享開發人員和提交者,這使它在設計復雜的訊息傳遞模式方面具有極高的復雜性,
ActiveMQ 是理想的訊息傳遞解決方案
Apache ActiveMQ 在寬松的 Apache 2.0 ASF 許可下是免費和開源的,它得到了一個多產且回應迅速的開發人員社區的支持,并且是由現在無處不在的企業集成模式 (EIP) 架構的一些早期創建者設想的,
將這些模式與 JMS 放在一起可以很容易地理解ActiveMQ 的作業原理,您可以在 ActiveMQ 中使用多種連接協議,允許它們在使用不同語言(如 Java、C++、.NET、PHP 等)編碼的應用程式之間提供高度規范化的連接點,
這使得 ActiveMQ 成為企業理想的免費訊息傳遞解決方案,用戶通常從 WebSphereMQ、Oracle AQ、TIBCO EMS 和/或 MSMQ 等商業中間件遷移到 ActiveMQ,
ActiveMQ 資料規模
ActiveMQ 可以針對大型資料集進行大規模調整,例如 CERN 大型強子對撞機生成的資料集,ActiveMQ 可以針對多種流量和實施模型進行配置,并具有強大的統計和指標引擎,可公開有關代理健康狀況以及訊息流量和客戶端狀態的數量和大小的重要詳細資訊,這些指標可以被流行的監控框架使用,使 ActiveMQ 成為一個高度可觀察的解決方案,
充分利用 ActiveMQ
雖然 Apache ActiveMQ 不是唯一可用的免費訊息傳遞解決方案,但它在平衡其多功能性和企業就緒性方面脫穎而出,您可以快速采用 ActiveMQ,任何熟悉 JMS 的人都可以訪問它,ActiveMQ 多產的社區將確保產品的持續生存能力,ActiveMQ 6 承諾將這種用途擴展到下一代企業訊息傳遞解決方案中,
獲得 ActiveMQ 的技術支持和指導
想要開始使用 Apache ActiveMQ?立即聯系專家,了解我們如何幫助您充分利用 ActiveMQ,包括ActiveMQ 支持,
本文由博客群發一文多發等運營工具平臺 OpenWrite 發布
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/554125.html
標籤:Java
下一篇:返回列表
