中間件(Activemq\Rabbitmq\kafka)之Activemq

前言

消息隊列:利用高效可靠的消息傳遞機制,進行與平臺、代碼語言無關的數據交互。

actviemq簡介:

<code>#ActiveMQ是Apache所提供的一個開源的消息系統,完全採用Java來實現,
#因此,它能很好地支持J2EE提出的JMS(Java Message Service,即Java消息服務)規範。
#JMS是一組Java應用程序接口,它提供消息的創建、發送、讀取等一系列服務。
#JMS提供了一組公共應用程序接口和響應的語法,類似於Java數據庫的統一訪問接口JDBC,
#它是一種與廠商無關的API,使得Java程序能夠與不同廠商的消息組件很好地進行通信。/<code>

特點:

(1) 應用解耦、實現異步通信,異步處理。

(2)實現流量的消峰。

(3)消息跨語言、跨平臺通訊。

詳細:

<code>#1、支持來自Java,C,C ++,C#,Ruby,Perl,Python,PHP的各種跨語言客戶端和協議。
#2、完全支持JMS客戶端和Message Broker中的企業集成模式。
#3、持許多高級功能,如消息組,虛擬目標,通配符等。
#4、完全支持JMS 1.1和J2EE 1.4,支持瞬態,持久,事務和XA消息/<code>


中間件(Activemq\Rabbitmq\kafka)之Activemq

avtiveMq


Java Message Service(JMS)

(1)Queue模型

<code>#一種稱為P2P(Ponit to Point)模型,即採用點對點的方式發送消息。
#P2P模型是基於隊列的,消息生產者發送消息到隊列,消息消費者從隊列中接收消息,
#隊列的存在使得消息的異步傳輸稱為可能,P2P模型在點對點的情況下進行消息傳遞時採用。/<code>

點對點

中間件(Activemq\Rabbitmq\kafka)之Activemq

active_queue


(2)Topic發佈訂閱模型

<code>#Pub/Sub(Publish/Subscribe,即發佈-訂閱)模型,發佈-訂閱模型定義瞭如何向一個內容節點發布和訂閱消息,
#這個內容節點稱為topic(主題)。主題可以認為是消息傳遞的中介,消息發佈這將消息發佈到某個主題,
#而消息訂閱者則從主題訂閱消息。主題使得消息的訂閱者與消息的發佈者互相保持獨立,
#不需要進行接觸即可保證消息的傳遞,發佈-訂閱模型在消息的一對多廣播時採用。/<code>

一對多


中間件(Activemq\Rabbitmq\kafka)之Activemq

topic


一、目錄

1、安裝

2、java接入activemq

3、歸納總結

二、接入中間件

2.1 安裝

2.1.1 activemq官網:http://activemq.apache.org/


中間件(Activemq\Rabbitmq\kafka)之Activemq

active-mq

2.1.2 執行activemq.bat


中間件(Activemq\Rabbitmq\kafka)之Activemq

activemq.bat

2.1.3 啟動完成


中間件(Activemq\Rabbitmq\kafka)之Activemq

start

2.1.4 訪問頁面

管理界面:http://127.0.0.1:8161/admin/index.jsp

管理員 密碼/賬戶:admin/admin

用戶 密碼/賬戶:user/user

配置:\apache-activemq-5.15.12\conf\jetty-realm.properties

\apache-activemq-5.15.12\conf\users.properties


中間件(Activemq\Rabbitmq\kafka)之Activemq

admin界面

2.1.5 界面解說

(1)Queue


中間件(Activemq\Rabbitmq\kafka)之Activemq

queue

屬性:

<code>(1)Number Of Consumers :消費者端的消費者數量。
(2)Number Of Pending Messages :當前未出隊列的數量。可以理解為總接收數-總出隊列數。
(3)Messages Enqueued :進入隊列的總數量,包括出隊列的。 這個數量只增不減。
(4)Messages Dequeued :出了隊列的消息。/<code>

queue詳情

中間件(Activemq\Rabbitmq\kafka)之Activemq

queue詳情


(2)Topic


中間件(Activemq\Rabbitmq\kafka)之Activemq

topic

topic詳情

中間件(Activemq\Rabbitmq\kafka)之Activemq

topic詳情


2.2 java接入中間件

2.2.1 引入依賴

<code>    
            org.springframework.boot
            spring-boot-starter-activemq
        
        
        org.apache.activemq
        activemq-pool
        5.15.0
        /<code>

2.2.2 activemq 屬性application.yml

<code>server.port=8087
spring.activemq.user=admin
spring.activemq.password=admin
spring.activemq.broker-url=tcp://127.0.0.1:61616
# 在考慮結束之前等待的時間
#spring.activemq.close-timeout=15s
# 默認代理URL是否應該在內存中。如果指定了顯式代理,則忽略此值。
spring.activemq.in-memory: true
# 是否在回滾回滾消息之前停止消息傳遞。這意味著當啟用此命令時,消息順序不會被保留。
spring.activemq.non-blocking-redelivery: false  
# 等待消息發送響應的時間。設置為0等待永遠。
#spring.activemq.send-timeout: 0
spring.activemq.queue-name: user.queue
spring.activemq.topic-name: user.topic
#不配置此項,會報錯
spring.activemq.packages.trust-all=true
spring.activemq.pool.enabled=true
#連接池最大連接數
spring.activemq.pool.max-connections=10
#空閒的連接過期時間,默認為30秒
#spring.activemq.pool.idle-timeout=30000/<code>

2.2.3 activemq配置類


中間件(Activemq\Rabbitmq\kafka)之Activemq

config

2.2.4 生產者/發佈者


中間件(Activemq\Rabbitmq\kafka)之Activemq

produce/pub

2.2.5 消費者/訂閱者


中間件(Activemq\Rabbitmq\kafka)之Activemq

consumer/sub

2.2.6 開啟jms


中間件(Activemq\Rabbitmq\kafka)之Activemq

main

2.2.7、測試


中間件(Activemq\Rabbitmq\kafka)之Activemq

log


分享到:


相關文章: