1. 程式人生 > >JMS|訊息中介軟體(一)簡介

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

1什麼是訊息中介軟體

  訊息中介軟體利用高效可靠的訊息傳遞機制進行平臺無關的資料交流,並基於資料通訊來進行分散式系統的整合。通過提供訊息傳遞和訊息排隊模型,它可以在分散式環境下擴充套件程序間的通訊。對於訊息中介軟體,常見的角色大致也就有 Producer(生產者)、Consumer(消費者)
   常見的訊息中介軟體產品::
  (1 )ActiveMQ
ActiveMQ 是 Apache 出品,最流行的,能力強勁的開源訊息匯流排。ActiveMQ 是一個完
全支援 JMS1.1 和 J2EE 1.4 規範的 JMS Provider 實現。我們在本次課程中介紹 ActiveMQ 的使
用。
  (2)RabbitMQ
AMQP 協議的領導實現,支援多種場景。淘寶的 MySQL 叢集內部有使用它進行通訊,
OpenStack 開源雲平臺的通訊元件,最先在金融行業得到運用。
  (3)ZeroMQ
史上最快的訊息佇列系統
  (4)Kafka
Apache 下的一個子專案 。特點:高吞吐,在一臺普通的伺服器上既可以達到 10W/s
的吞吐速率;完全的分散式系統。適合處理海量資料。

2.JMS 簡介

什麼是 JMS
  JMS(Java Messaging Service)是 Java 平臺上有關面向訊息中介軟體的技術規範,它便
於訊息系統中的 Java 應用程式進行訊息交換,並且通過提供標準的產生、傳送、接收訊息的
介面簡化企業應用的開發。
  JMS 本身只定義了一系列的介面規範,是一種與廠商無關的 API,用來訪問訊息收發系統。它類似於 JDBC(java Database Connectivity):這裡,JDBC 是可以用來訪問許多不同關
係數據庫的 API,而 JMS 則提供同樣與廠商無關的訪問方法,以訪問訊息收發服務。許多廠商目前都支援 JMS,包括 IBM 的 MQSeries、BEA 的 Weblogic JMS service 和 Progress 的
SonicMQ,這只是幾個例子。 JMS 使您能夠通過訊息收發服務(有時稱為訊息中介程式或路由器)從一個 JMS 客戶機向另一個 JML 客戶機發送訊息。訊息是 JMS 中的一種型別物件,由兩部分組成:報頭和訊息主體。報頭由路由資訊以及有關該訊息的元資料組成。訊息主體則攜帶著應用程式的資料或有效負載。

  JMS 定義了五種不同的訊息正文格式,以及呼叫的訊息型別,允許你傳送並接收以一些不同形式的資料,提供現有訊息格式的一些級別的相容性  

  • TextMessage–一個字串物件
  • MapMessage–一套名稱-值對
  • ObjectMessage–一個序列化的 Java 物件
  • BytesMessage–一個位元組的資料流
  • StreamMessage – Java 原始值的資料流

JMS 訊息傳遞型別

對於訊息的傳遞有兩種型別:
  一種是點對點的,即一個生產者和一個消費者一一對應;
這裡寫圖片描述

  另一種是釋出/ 訂閱模式,即一個生產者產生訊息並進行傳送後,可以由多個消費者進行接收。
  這裡寫圖片描述

ActiveMQ 下載與安裝

下載
官方網站下載:http://activemq.apache.org/
安裝(Linux)
  (1)將 apache-activemq-5.12.0-bin.tar.gz 上傳至伺服器
 (2)解壓此檔案
 tar zxvf apache-activemq-5.12.0-bin.tar.gz
 (3)為 apache-activemq-5.12.0 目錄賦權
   chmod 777 apache-activemq-5.12.0
   進入 apache-activemq-5.12.0\bin 目錄
   chmod 755 activemq
啟動
./activemq start
登入
  假設伺服器地址為 192.168.25.135 ,開啟瀏覽器輸入地址
http://192.168.25.135:8161/ 即可進入 ActiveMQ 管理頁面
配置使用者對映
vim /etc/hosts