消息中間件之JMS實踐(ActiveMQ)

一、消息中間件做用

做爲一個消息傳遞中間層,方便信息發送者和接受者通訊。java

二、消息中間件好處

一、信息解耦:信息發送方和接收方經過中間件通訊,不須要直接通訊。spring

二、異步:消息被中間件處理,發送方和接收方都不用直接通訊。安全

三、安全可靠:中間件作的仍是很可靠地。。性能優化

四、橫向擴展:支持多信息發送方和接收方服務器

五、順序保證:中間件功能。微信

三、常見消息中間件

JMS(Java Message Service):java平臺中面向消息通訊的API架構

一、ActiveMQ:Apache開源總線併發

二、RabbitMQ:一樣是開源的,是一種AMQP協議實現,服務器是erlang編寫負載均衡

三、kafka:支持高吞吐量的分佈式訂閱系統,是一種分佈式、可靠地、分區的日誌訂閱系統異步

四、JMS

一、隊列模型:客戶端包括生產者和消費者、隊列中的(一個)消息只能被一個消費者消費;消費者能夠隨時消費隊列中的消息

二、主題模型:客戶端包括髮布者和訂閱者;主題中的消息能被全部訂閱者訂閱;消費者不能消費到訂閱前發佈的消息

五、隊列模式代碼

一、生產者

clipboard.png

二、消費者

clipboard.png

須要注意的是jdk版本須要是1.8以上

六、主題模式實踐

一、生產者代碼

clipboard.png

二、消費者代碼

clipboard.png

七、綜述

ActiveMQ的主題模式和隊列模式代碼大同小異,只須要關注主題模式是發佈訂閱模型、隊列模式是生產者消費者模型。發佈訂閱是一種廣播形式,能夠用來作消息同步,而生產者消費者模型能夠用來作負載均衡。

在此我向你們推薦一個架構學習交流羣。交流學習羣號:478030634 裏面會分享一些資深架構師錄製的視頻錄像:有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化、分佈式架構等這些成爲架構師必備的知識體系。還能領取免費的學習資源,目前受益良多

注:關注做者微信公衆號,瞭解更多分佈式架構、微服務、netty、MySQL、

spring、性能優化、等知識點。公衆號:《Java爛豬皮》

圖片描述

相關文章
相關標籤/搜索