什麼是消息中間件 |
消息中間件利用高效可靠的消息傳遞機制進行平臺無關的數據交流,並基於數據通信來進行分佈式系統的集成。通過提供消息傳遞和消息排隊模型,它可以在分佈式環境下擴展進程間的通信。對於消息中間件,常見的角色大致也就有Producer(生產者)、Consumer(消費者)
常見的消息中間件 |
ActiveMQ ,是Apache出品,最流行的,能力強勁的開源消息總線。ActiveMQ 是一個完全支持JMS1.1和J2EE 1.4規範的 JMS Provider實現。【5W/s吞吐量】
RabbitMQ,AMQP協議的領導實現,支持多種場景。淘寶的MySQL集羣內部有使用它進行通訊,OpenStack開源雲平臺的通信組件,最先在金融行業得到運用。【5W/s吞吐量】
RocketMQ,阿里開源分佈式消息隊列系統 【10W/s吞吐量】
Kafka,Apache下的一個子項目 。特點:高吞吐,在一臺普通的服務器上既可以達到16W/s的吞吐量;完全的分佈式系統。適合處理海量數據。
系統模塊之間調用關係 |
我們通過引入消息中間件ActiveMQ,使得商家後臺系統與搜索系統、商品詳情繫統解除了耦合,提高商家後臺系統的吞吐量。
JMS |
JMS(Java Messaging Service)是Java平臺上有關面向消息中間件的技術規範,它便於消息系統中的Java應用程序進行消息交換,並且通過提供標準的產生、發送、接收消息的接口簡化企業應用的開發。
JMS 定義了五種不同的消息正文格式,以及調用的消息類型,允許你發送並接收以一
些不同形式的數據,提供現有消息格式的一些級別的兼容性。
• TextMessage–字符串消息
• MapMessage–鍵值對封裝消息
• ObjectMessage–序列化對象消息
• BytesMessage–字節封裝消息
• StreamMessage–數據流封裝消息
對於消息的傳遞有兩種類型:
一種是點對點的,即一個生產者和一個消費者一一對應:
一種是發佈/訂閱模式,即一個生產者產生消息並進行發送後,可以由多個消費者進行接收:
ActiveMQ |