activemq和jms是種什麼關係

来源:http://www.cnblogs.com/Carrol/archive/2016/11/05/6034012.html
-Advertisement-
Play Games

JMS是一個用於提供消息服務的技術規範,它制定了在整個消息服務提供過程中的所有數據結構和交互流程。 而activemq則是消息隊列服務,是面向消息中間件(MOM)的最終實現,是真正的服務提供者。 jms 的一個標準或者說是一個協議。 通常用於企業級應用的消息傳遞。 主要有topic 消息(1 對多) ...


JMS是一個用於提供消息服務的技術規範,它制定了在整個消息服務提供過程中的所有數據結構和交互流程。

而activemq則是消息隊列服務,是面向消息中間件(MOM)的最終實現,是真正的服務提供者。

jms 的一個標準或者說是一個協議。

通常用於企業級應用的消息傳遞。

主要有topic 消息(1 對多),queue 消息(1對1)。

activemq 是一個jms 的實現,apache 出的。

 

MQ特點:
MQ的消費-生產者模型的一個典型的代表,一端往消息隊列中不斷的寫入消息,而另一端則可以讀取或者訂閱隊列中的消息。
MQ和JMS類似,但不同的是JMS是SUN JAVA消息中間件服務的一個標準和API定義而MQ則是遵循了AMQP協議的具體實現和產品。

使用場景:
  在項目中,將一些無需即時返回且耗時的操作提取出來,進行了非同步處理,而這種非同步處理的方式大大的節省了伺服器的請求響應時間,從而提高了系統的吞吐量。
  
JMS簡介:

  JMS即Java消息服務(Java Message Service)應用程式介面,是一個Java平臺中關於面向消息中間件(MOM)的API。
  用於在兩個應用程式之間,或分散式系統中發送消息,進行非同步通信。
  Java消息服務是一個與具體平臺無關的API,絕大多數MOM提供商都對JMS提供支持。

  定義:
  JMS(Java Messaging Service)是Java平臺上有關面向消息中間件(MOM)的技術規範,它便於消息系統中的Java應用程式進行消息交換,並且通過提供標準的產生、發送、接收消息的介面簡化企業應用的開發,翻譯為Java消息服務。
  
  簡介:

  JMS是一種與廠商無關的 API,用來訪問消息收發系統消息。

它類似於JDBC(Java DatabaseConnectivity):這裡,JDBC 是可以用來訪問許多不同關係資料庫的 API,而 JMS 則提供同樣與廠商無關的訪問方法,以訪問消息收發服務。
許多廠商目前都支持JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ,這隻是幾個例子。
JMS 使您能夠通過消息收發服務(有時稱為消息中介程式或路由器)從一個 JMS 客戶機向另一個JMS客戶機發送消息。

  消息是 JMS 中的一種類型對象,由兩部分組成:報頭和消息主體。
報頭由路由信息以及有關該消息的元數據組成。消息主體則攜帶著應用程式的數據或有效負載。
根據有效負載的類型來劃分,可以將消息分為幾種類型,它們分別攜帶:
  簡單文本(TextMessage)、可序列化的對象(ObjectMessage)、屬性集合(MapMessage)、位元組流(BytesMessage)、原始值流(StreamMessage),還有無有效負載的消息(Message)。

JMS和MQ的關係:
  JMS是一個用於提供消息服務的技術規範,它制定了在整個消息服務提供過程中的所有數據結構和交互流程。
而MQ則是消息隊列服務,是面向消息中間件(MOM)的最終實現,是真正的服務提供者;MQ的實現可以基於JMS,也可以基於其他規範或標準。

  
支持JMS的開源MQ:

  目前選擇的最多的是ActiveMQ。
  ActiveMQ 是Apache出品,最流行的,能力強勁的開源消息匯流排。
ActiveMQ 是一個完全支持JMS1.1和J2EE 1.4規範的 JMS Provider實現,儘管JMS規範出台已經是很久的事情了,但是JMS在當今的J2EE應用中間仍然扮演著特殊的地位。


主要特點:

  1. 多種語言和協議編寫客戶端。語言: Java, C, C++, C#, Ruby, Perl, Python, PHP。應用協議: OpenWire,Stomp REST,WSNotification,XMPP,AMQP;
  2. 完全支持JMS1.1和J2EE 1.4規範 (持久化,XA消息,事務);
  3. 對Spring的支持,ActiveMQ可以很容易內嵌到使用Spring的系統裡面去,而且也支持Spring2.0的特性;
  4. 通過了常見J2EE伺服器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的測試,其中通過JCA 1.5 resource adaptors的配置,可以讓ActiveMQ可以自動的部署到任何相容J2EE 1.4 商業伺服器上;
  5. 支持多種傳送協議:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA;
  6. 支持通過JDBC和journal提供高速的消息持久化;
  7. 從設計上保證了高性能的集群,客戶端-伺服器,點對點;
  8. 支持Ajax;
  9. 支持與Axis的整合;
  10. 可以很容易得調用內嵌JMS provider,進行測試;
  11. ActiveMQ速度非常快;一般要比jbossMQ快10倍。

  優點:
  是一個快速的開源消息組件(框架),支持集群,同等網路,自動檢測,TCP,SSL,廣播,持久化,XA,和J2EE1.4容器無縫結合,並且支持輕量級容器和大多數跨語言客戶端上的Java虛擬機。
  消息非同步接受,減少軟體多系統集成的耦合度。
  消息可靠接收,確保消息在中間件可靠保存,多個消息也可以組成原子事務。

  缺點:
  ActiveMQ預設的配置性能偏低,需要優化配置,但是配置文件複雜,ActiveMQ本身不提供管理工具;
  示例代碼少;主頁上的文檔看上去比較全面,但是缺乏一種有效的組織方式,文檔只有片段,用戶很難由淺入深進行瞭解,
  文檔整體的專業性太強。在研究階段可以通過查maillist、看Javadoc、分析源代碼來瞭解。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • *
    ...
  • 一.神秘的webservice Web service是一個平臺獨立的,低耦合的,自包含的、基於可編程的web的應用程式,可使用開放的XML(標準通用標記語言下的一個子集)標準來描述、發佈、發現、協調和配置這些應用程式,用於開發分散式的互操作的應用程式。Web Service技術, 能使得運行在不同 ...
  • 原文件(數據已經脫敏): ...
  • 舉例 我們先從示例應用程式的一些摘錄開始。下麵是暴露Person對象的響應信息庫。很類似於傳統的,非響應信息庫,只不過它返回Flux<Person>而傳統的返回List<Person>,以及返回Mono<Person>的地方返回Person。Mono<Void>用作完成標識:指出何時保存被完成。關於 ...
  • 今天我們一起來學習WebService。它到底是幹啥用的? Web service是一個平臺獨立的,低耦合的,自包含的、基於可編程的web的應用程式,可使用開放的XML(標準通用標記語言下的一個子集)標準來描述、發佈、發現、協調和配置這些應用程式,用於開發分散式的互操作的應用程式。 一:Web Se ...
  • |定義|含義| | | | |int i|定義整形變數i| |int p|p為指向整形數據類型的指針變數| |int a[n]|定義有n個元素的整型數組a| |int p[n]|定義由n個指向整型數據的指針元素組成的指針數組p| |int ( p)[n]|p為指向n個元素的一維數組的指針變數| |i ...
  • php的閉包可能不常用,但是在某些場合之下還是可以考慮用php的閉包來實現某些功能的,比如遞歸,這裡講一下用php的閉包實現遞歸 這是一個簡單的使用php閉包實現遞歸的函數,其實,假如我們對這個函數稍微修改一下,是可以實現很多功能的,比如說,無限極分類。 關於裡面的閉包函數,其實,我們也可以不用引用 ...
  • List Set 都是介面,都繼承了Collection介面 ArrayList LinkList 直接實現了List介面 HashSet 實現了Set介面 HashSet 實現了Set介面 TreeSet繼承父類AbstractSet 間接的實現了Set 介面 Map 是介面,沒有實現Collec ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...