1. 程式人生 > >TIBCO Rendezvous、IBM MQ和JMS訊息中介軟體技術比較

TIBCO Rendezvous、IBM MQ和JMS訊息中介軟體技術比較

1.1.1.      TIBCO Rendezvous — 技術介紹

TIBCO Rendezvous(或稱為TIBCO RV)產品是一種中介軟體,它具有釋出/訂閱(Publish/Subscribe)、基於主題定址(Subject-Based Addressing) 和自定義資料資訊(Self-Describing Data Messages)等專利技術功能,使不同應用平臺上的資訊在一個共享的虛擬匯流排Information Bus(TIB)上進行傳輸交換。這些技術能有效地幫助企業從傳統的請求/應答(Request/Reply)模式轉到自動資料接受的事件驅動模式(Event-Driven,或稱之為Push)。TIBCO RV 有助於在各種應用系統中獲取資訊和資料,能將異構平臺有機地聯結起來, 通過以即插即用(Plug &Play) 、位置無關(Location-Independent)和分散式服務(Distributed Services)的方式在WAN 和LAN 間配置系統。並且TIBCO RV 具有認證訊息傳遞(Certified Message Delivery) 、容錯(Fault Tolerance) 和分散式佇列(Distributed Queue)功能。因為使用TIBCO RV 不用考慮網路的技術細節,而只需專注於企業應用的開發,所以能快速建立和配置一個可伸縮的分散式應用系統。

TIBCO Rendezvous 的優點:

l   加快應用的開發,減少維護費用;

l   唯一獨立於硬體、作業系統、網路和協議平臺供應商;

l   動態元件替換:程序可以隨時載入、退出、替換,而不影響系統執行;

l   遮蔽網路細節;

l   應用伸縮性高;

l   地址無關,簡化增加/改變元件;

l   提高分佈系統的生命期;

1.1.1.1.           TIBCO Rendezvous 的特點:

  一般特性:

·             分散式佇列實現一對多資訊傳送;

·             安全資訊傳送;

·             冗餘機制實現容錯;

·           所有平臺間對等傳輸;

·           與其他通訊協議並存於統一系統;

·           支援多種資料內部交換格式;

·           系統開銷低,容易嵌入;

·           執行緒安全,多執行緒安全保護;

·           支援多點傳送;

  通訊和資料特性:

·             非同步通訊;

·             釋出/訂閱,可靠的廣播(broadcast)/多播(multicast)機制;

·             點對點請求/應答;

·             基於主題訊息傳送;

·             自定義資料資訊與硬體/作業系統無關;

·             透明的資訊打包或重組;

  認證資訊傳遞:

·             明確的資訊認證,確保資訊傳送到目的地;

·             在程序中斷和重新啟動狀態下確保要傳遞的資訊不丟失;

·             分散式佇列,自動實現負載均衡功能;

·             傳遞資訊給佇列種的某一成員;

·             佇列成員程序保持非同步執行;

  容錯:

·             通過冗餘程序實現系統容錯;

·             監控活動的冗餘程序;

  開發特點:

·             提供Java、C、C++、ActiveX、.NET、Perl 的API 庫;

·             原始碼相容所有的平臺;

·             支援同步/非同步事件管理結構;

1.1.1.2.           TIBCO Rendezvous 包含的元件

TIBCO Rendezvous Daemon(rvd)為應用程序傳遞資訊,過濾主題資訊,分配資訊;

TIBCO Rendezvous Routing Daemon(rvrd) 在WAN 和LAN 間跨網段有效地傳遞資訊,對TIBCO Rendezvous 應用編碼不做任何修改;

1.1.1.3.           TIBCO Rendezvous 部署方法

TIBCO RV 在當前的操作環境中加入兩個元件:

ü   API 庫。每個應用程式連線到RV API 庫的某一版本;

ü   RV 通訊Daemon 程序。在大多數環境,每臺主機上面執行一個Daemon 程序。

下圖演示了一個簡單環境中兩個系統進行互動的過程。主機1 上執行應用

程式A 和一個daemon 程序,主機2 上執行兩個應用程式B 和C,它們通過單個daemon 程序連線到網路上。所有這三個應用程式可以進行相互通訊。

任何主機上可以執行任意數量的RV 應用程式。通常一個主機上的所有RV應用程式共享同一個RV Daemon 程序。

Rendezvous Daemon 程序

應用程式依賴RV Daemon 後臺程序進行可靠和高效的網路通訊。(通常RVDaemon 程序和RV 應用程式執行在同一主機上;但是RV 應用程式也可以連線到遠端daemon。)

RV 應用程式試圖連線到RV daemon 程序。如果daemon 沒有執行,應用程式將自動啟動它並連線到daemon 程序。RV daemon 負責通訊的所有細節:如資料的傳輸,包的排序,接收確認包,重發請求,將資訊派發到適當的應用程式程序等。它為RV 應用程式隱藏了所有這些細節。

1.1.1.4.           XML 功能的實現

TIBCO RV 只是一個訊息中介軟體產品,XML 資料可以通過RV 訊息進行傳遞,但它不提供對XML 資料的處理能力。

可以通過幾種方式來實現XML 資料的處理:

使用TIBCO BusinessWorks 產品對包含XML 資料的RV 訊息進行各種處理,如對映、變換、合併、分解等;

使用第三方XML 工具或API,以程式設計方式對RV 訊息中的XML 資料進行處理。

1.1.1.5.           如何使用TIBCO Rendezvous

TIBCO RV 本身只提供一些後臺Daemon 程式以及API 介面供使用者使用。使用者使用這些API,選擇RV 支援的開發語言(如C/C++,Java 等)開發相應的RV 應用程式,並通過後臺Daemon 程序進行訊息的傳送或接收。

使用者也可以選擇TIBCO 基於RV 開發的一些其他產品(如BusinessWorks,各種Adapter 等)來簡化應用程式的開發。

1.1.2.      TIBCO Adapter for ActiveDatabase — 技術介紹

概述

TIBCO Adapter for ActiveDatabase可以把某個資料庫中資料的變化可以傳送給其他的資料庫或應用。它把釋出/訂閱與請求/回覆機制擴充到資料庫層面,使資料庫應用可以使用多種不同層次的訊息傳遞服務。它支援所有的ODBC相容資料庫,包括DB2, Oracle, Sybase, Informix, Microsoft SQL Server, TimesTen in-memory database等。

特色

事先定義的資料庫表中的行發生插入、修改或刪除操作時,可以把資料按照TIBCO Rendezvous訊息格式釋出

l   建立資料的拷貝,按照資料值來發布資料

l   直接引用新的資料來發布資訊。

l   可以使用引數定義釋出訊息的主題,即可以根據釋出資料的內容動態床架主題。

l   可以使用可靠傳輸和保證傳輸兩種方式進行資料的釋出。

l   保證傳輸的接收者可以事先在保證傳輸資訊的釋出者上註冊。

事先定義的資料庫表中的行發生插入、修改或刪除操作時,可以訂閱按照TIBCO Rendezvous訊息格式釋出的資料變化

l 可以使用含有萬用字元的主題名稱訂閱訊息

l 可以使用可靠傳輸和保證傳輸兩種方式進行資料的訂閱。

l 可以根據訊息數量或超時時間進行批處理提交。

l   可以使用基於TIBCO Rendezvous 客戶端應用定義特定的主題使用RV訊息格式向資料庫傳送SQL語句或儲存過程。

使用內建的函式來配置釋出代理和訂閱代理,修改資訊內容。

配置TIBCO Adapter for ActiveDatabase 來滿足需求:

定義資料庫表間關係,釋出所有的相關表內容。

使用定期檢查或通知機制監測資料庫的改變。

基於的標準:

l 通過ODBC連線多種資料庫

l 與其他TIBCO ActiveEnterprise元件實現互操作。

l 使用TIBCO Hawk進行系統監控。

支援的系統平臺

ü   Windows

ü   HP-UX

ü   Solaris

ü   AIX

ü   Linux

支援的資料庫系統

ü   Oracle

ü   Sybase

ü   MSSQL

ü   DB2 for OS/390

ü   DB2 for AS/400

ü   DB2 UDB for Windows and Unix

TIBCO RV, IBM MQ和JMS訊息中介軟體的對比分析

對於訊息中介軟體,絕大多數熟悉的是 IBM MQ, 這是目前使用最廣泛的中介軟體產品。國內還有一款中介軟體 TongLinkQ, 結構和 MQ 相似。其實在國外還有一款叫 Rendzvous 的訊息中介軟體應用也非常廣泛,只是在國內應用不多,所以在國內並沒有 MQ 那麼大的名氣。這款訊息中介軟體的設計和 MQ 是完全不同的,有很多不同的特性特點,使得它在某些應用場景具備更多的優勢。 總結一下 Rendzvous 的架構特點,和 MQ 的架構以及 JMS 訊息中介軟體的架構做比較。深入瞭解和比較這些中介軟體產品,才能用的準用的好它們。

先總結一下訊息中介軟體的功能,以上的三類中介軟體都實現了這些功能。

Ø       實現訊息的非同步傳送接收,釋出訂閱,使得兩端的應用解耦。

Ø       實現訊息持久化機制,保證訊息可靠性傳輸。

Ø       優化網路傳輸,支援斷點續傳。

1.      分散式結構 VS 星型結構 ,推送 VS 接收, 服務端快取 VS 客戶端快取 

RV 和 MQ 都是分散式結構的, 和 JMS 訊息中介軟體的星型結構不同。分散式訊息中介軟體的 Server 在應用環境裡都會部署多個,彼此互聯,沒有主備之分。 JMS 訊息中介軟體的應用部署一般都是主備兩個 Server ,訊息的傳送和接收應用平時和主 Server 相連,有問題時切換到備 Server ,主備 Server 共用公共的儲存裝置來儲存訊息。

MQ 和 JMS 訊息中介軟體都採用訊息接收端主動接收訊息的方式。訊息從傳送端發出後,首先會快取到 Server 上, 接收端應用發起一個接收訊息的請求, Server 把訊息作為應答返回給接收端。接收端不執行接收動作,訊息就會一直在 Server 上儲存。

RV 和這兩種訊息中介軟體都不同,使用的是訊息推送的模式。訊息從傳送端發出後,並不在 Server 上快取, Server 只做路由把訊息推送給訊息接收端。訊息接收端只要連線上 Server ,訂閱要接收的訊息,這些訊息就會源源不斷地從 Server 那裡推送過來,訊息先快取到接收客戶端的佇列裡,接收端應用再從佇列裡取訊息。

總之 RV 是一個分散式結構,推送訊息模式,客戶端快取的訊息中介軟體。分散式結構適用於分佈是應用系統,方便做擴充套件,推送加客戶端快取適用於高實時性訊息的處理,訊息需要在第一時間到達目的地,過時的訊息的沒有必要儲存下來的,訊息接收端應用需要做的事情就是不斷地處理已經推送到的訊息。

2.      使用廣播和組播來實現一對多的釋出訂閱 

MQ 和 JMS 訊息中介軟體在 IP 層都使用點對點的傳輸方式,而 RV 在 IP 層使用的是廣播或者組播的方式。 使用廣播或者組播可以直接實現一對多的釋出訂閱形式,釋出應用釋出訊息到 RV 網路上,這些訊息會廣播到網路的每一個節點上,每一個訂閱應用都會收到這些訊息。而 MQ 和 JMS 實現釋出訂閱就要麻煩的多了, 都是在 Server 按訊息的 Topic 來快取訊息,為每一個訂閱者拷貝每一條訊息的引用。當所有訂閱者都從 Server 上取走某條訊息,這條訊息才在 Server 上刪除。

3.      UDP VS TCP 

MQ 和 JMS 訊息中介軟體不論是 Server 和 Server 的通訊,還是 Server 和 Client 的通訊,在傳輸層都使用 TCP 協議,保證訊息傳輸連線的可靠性。而 RV 在 Server 和 Server 之間的通訊使用了 UDP 協議,犧牲可靠性來達到高實時性的需求。 RV 有兩種可靠性級別, RV Reliable 和 RVCM 。 RV Reliable 模式使用基於 UDP 增加了一定可靠機制的 TRDP 協議,在一定範圍內具有訊息包的檢查和重傳機制,保證了一定程度的訊息可靠性,但不保證訊息不丟失。 RVCM 在 RV Reliable 基礎上更進一步,在訊息級別具有訊息確認和重傳機制,可以保證訊息絕對不丟失。對於長度在 1500 個位元組以下的訊息, RV Reliable 釋出訊息能達到 150 萬筆訊息每秒,接收也能達到 50 萬筆訊息每秒。傳輸訊息的效能是非常好的。

4.      使用訊息 Subject 做收發兩端的匹配 

MQ 和 JMS 訊息中介軟體在 Server 端按 Queue 和 Topic 來快取訊息,訊息的傳送端和接收端按 Queue 和 Topic 的名字來匹配。每個 Server能建立的 Queue 和 Topic 是有限的,這也就限制了使用 MQ 和 JMS 訊息中介軟體構建的應用,這些應用在做訊息收發處理的時候只能使用粗粒度的訊息分類。

RV 不在 Server 端快取訊息,也沒有 Server 端的 Queue 和 Topic 。它是使用訊息的 Subject 來做訊息傳送端和接收端的匹配的。每個訊息都有 Subject , Subject 格式是多個字串的串接,沒有數目或者長度的限制。比如在市場資料系統裡,行情資料訊息的 Subject 裡包含金融品種的名字,這樣的 Subject 可以有上百萬個。訊息訂閱端可以細到只接收某個市場的某個品種的行情資料。

RV 使用優化的演算法實現 Subject 的篩選。如果 RV 網路上有一萬種訊息,一個 RV Server 被一千個訊息接收端連線,每個接收端訂閱不同的 Subject 。那 RV Server 的工作就類似一個超級的郵件分檢員,對每一個從 RV 網路上廣播而來的訊息做 Subject 的判斷,判斷是否在這一千個訂閱的 Subject 的範圍內,是則將訊息推送到訂閱此訊息的接收端,否則將訊息拋棄。當資料量很大時,這種篩選工作是需要很高效率的。

總之, RV 的最大特點是推送模式,把一個數據生產者的資料以最快的速度推送到多個數據消費者那裡。 RV 從金融市場資料系統的需求中產生而來,正是這些特點使得它在證券系統得到最廣泛的應用。



相關推薦

TIBCO RendezvousIBM MQJMS訊息中介軟體技術比較

1.1.1.      TIBCO Rendezvous — 技術介紹 TIBCO Rendezvous(或稱為TIBCO RV)產品是一種中介軟體,它具有釋出/訂閱(Publish/Subscribe)、基於主題定址(Subject-Based Addressing) 和

JMS-訊息中介軟體

一、簡介 1、JMS(Java Message Service),即:java訊息服務應用程式介面。 2、是Java平臺面向訊息中介軟體(MOM)的API/技術規範。 3、場景:應用與兩個應用程式之間,或者分散式系統架構中分發訊息,可進行非同步/同步方式的通訊,和平臺

MQ訊息中介軟體技術淺析

JMS(Java Messaging Service)是Java平臺上有關面向訊息中介軟體的技術規範,它便於訊息系統中的Java應用程式進行訊息交換,並且通過提供標準的產生、傳送、接收訊息的介面簡化企業應用的開發。        JMS本身只定義了一系列的介面規範,是一種與廠商無關的 API,用來訪問訊息收

JMS訊息中介軟體原理及ActiveMQ在企業中的應用(接上篇)

程式碼實現:傳送訊息---》接受訊息---》伺服器配置 //1 傳送訊息(接受回覆訊息) public class SenderMessageService { //釋出指定訊息到指定地址(在釋出之前,建議將訊息儲存到資料庫)  public void publish(St

JMS|訊息中介軟體(一)簡介

1什麼是訊息中介軟體   訊息中介軟體利用高效可靠的訊息傳遞機制進行平臺無關的資料交流,並基於資料通訊來進行分散式系統的整合。通過提供訊息傳遞和訊息排隊模型,它可以在分散式環境下擴充套件程序間的通訊。對於訊息中介軟體,常見的角色大致也就有 Producer(生

RabbitMQ訊息中介軟體技術精講無密完結版

第1章 課程介紹 本章首先讓大家徹底明白為什麼學習RabbitMQ,通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹下業界主流訊息中介軟體有哪些,各自適用場景等。 1-1 課程導學 1-2 業界主流訊息中介軟體介紹 第2章 低門檻,入門RabbitMQ核心概念 本

RabbitMQ訊息中介軟體技術精講(完整版)

點選下載 第1章 課程介紹 本章首先讓大家徹底明白為什麼學習RabbitMQ,通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹下業界主流訊息中介軟體有哪些,各自適用場景

某課實戰RabbitMQ訊息中介軟體技術精講

第1章 課程介紹 本章首先讓大家徹底明白為什麼學習RabbitMQ,通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹下業界主流訊息中介軟體有哪些,各自適用場景等。 1-1 課程導學 1-2 業界主流訊息中介軟體介紹 第2章 低門檻,入門Rab

RabbitMQ訊息中介軟體技術精講(已完結)

第1章 課程介紹 本章首先讓大家徹底明白為什麼學習RabbitMQ,通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹下業界主流訊息中介軟體有哪些,各自適用場景等。 1-1 課程導學 1-2 業界主流訊息中介軟體介紹 第2章 低門檻,入門Rab

2018目前最新RabbitMQ訊息中介軟體技術精講(已完結)

第1章 課程介紹 本章首先讓大家徹底明白為什麼學習RabbitMQ,通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹下業界主流訊息中介軟體有哪些,各自適用場景等。 1-1 課程導學 1-2 業界主流訊息中介軟體介紹 第2章 低門檻,入門RabbitMQ核心概念 本

2019最新RabbitMQ訊息中介軟體技術精講(已完結)

第1章 課程介紹 本章首先讓大家徹底明白為什麼學習RabbitMQ,通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹下業界主流訊息中介軟體有哪些,各自適用場景等。 1-1 課程導學 1-2 業界主流訊息中介軟體介紹 第2章 低門檻,入門RabbitMQ核心概念 本

最新RabbitMQ訊息中介軟體技術精講

第1章 課程介紹 本章首先讓大家徹底明白為什麼學習RabbitMQ,通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹下業界主流訊息中介軟體有哪些,各自適用場景等。 1-1 課程導學 1-2 業界主流訊息中介軟體介紹 第2章 低門檻,入門Rabbi

大型網際網路高併發解決方案之訊息中介軟體技術-activeMQ詳解

點選上方藍字關注的都是靚仔和仙女 概述 ActiveMQ是Apache所提供的一個開源的訊息系統,完全採用Java來實現,因此,它能很好地支援J2EE提出的JMS(Java Message Service,即Java訊息服務)規範。JMS是一組Java應用程式介面,它提供訊息的建立、傳送、讀取等一系列服

RabbitMQ訊息中介軟體技術精講實戰(百度網)

第1章 課程介紹 本章首先讓大家徹底明白為什麼學習RabbitMQ,通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹下業界主流訊息中介軟體有哪些,各自適用場景等。 1-1 課程導學 1-2 業界主流訊息中介軟體介紹 第2章 低門檻,入門Rab

Spring整合JMSIBM MQ傳送接收訊息

最近才接觸到MQ,由於之前完全不知道是幹嘛用的,還是很花了一點時間研究的~先來簡單解釋一下名詞啦 一、名詞解釋 MQ MQ(message queue)指訊息佇列,是應用程式對應用程式的通訊方法。可以利用訊息佇列暫存資料報文。 MQ的原理其實就是生產者

Spring整合JMSIBM MQ發送接收消息

turn this oat implement actor AI encoding title post Spring整合JMS、IBM MQ發送和接收消息 2017年03月23日 17:45:30 轉載。 https://blog.csdn.net/Yolanda

訊息中介軟體JMSspring框架的整合使用

整合其實與原生的非常相似,只是將重複的很多步驟都寫在了配置檔案中,將所有能new的都交給了spring進行管理   生產者productor專案 第一步:導包 匯入一個是跟spring框架整合的包, 一個是訊息中介軟體的包,這時候因為有跟spring整合的包,所以sprin

KafkaRabbitMQRocketMQ等訊息中介軟體的對比 —— 訊息傳送效能區別

分散式系統中,我們廣泛運用訊息中介軟體進行系統間的資料交換,便於非同步解耦。現在開源的訊息中介軟體有很多,前段時間我們自家的產品 RocketMQ (MetaQ的核心) 也順利開源,得到大家的關注。 那麼,訊息中介軟體效能究竟哪家強? 帶著這個疑問,我們中介軟體測

訊息中介軟體MQ(二)模式應用場景常用協議

1.訊息中介軟體模式分類 1.1 點對點 1.2釋出/訂閱 2訊息中介軟體應用場景 2.1非同步通訊 有些業務不想也不需要立即處理訊息。訊息佇列提供了非同步處理機制,允許使用者把一個訊息放入佇列,但並不立即處理它。想向佇列中放入多少訊息就放多少,然後在需要的

訊息中介軟體MQ(三)JMS常識及簡單案例

1JMS概念 JMS即Java訊息服務(Java Message Service)應用程式介面,是一個Java平臺中關於面向訊息中介軟體(MOM)的API,用於在兩個應用程式之間,或分散式系統中傳送訊息,進行非同步通訊。Java訊息服務是一個與具體平臺無關的AP