Java訊息佇列 ActiveMq 初體驗

2021-09-10 23:12:27 字數 3011 閱讀 1602

activemq 提供了windows 和linux、unix 等幾個版本,樓主這裡選擇了linux 版本下進行開發。

從它的目錄來說,還是很簡單的:

1.bin存放的是指令碼檔案

2.conf存放的是基本配置檔案

3.data存放的是日誌檔案

4.docs存放的是說明文件

5.examples存放的是簡單的例項

6.lib存放的是activemq所需jar包

2、啟動activemq 

進入到activemq 安裝目錄的bin 目錄,linux 下輸入 ./activemq start 啟動activemq 服務。

輸入命令之後,會提示我們建立了乙個程序ip 號,這時候說明服務已經成功啟動了。

activemq預設啟動時,啟動了內建的jetty伺服器,提供乙個用於監控activemq的admin應用。

admin:

我們在瀏覽器開啟鏈結之後輸入賬號密碼(這裡和tomcat 伺服器類似)

預設賬號:admin

密碼:admin

到這裡為止,activemq 服務端就啟動完畢了。

activemq 在linux 下的終止命令是 ./activemq stop

3、建立乙個activemq工程

這個jar 包就是我們需要在專案中進行開發中使用到的相關依賴。

3.1 建立生產者

public class producter catch (jm***ception e)

}public void sendmessage(string disname)else

while(true)

} catch (jm***ception e) catch (interruptedexception e)

}}public class comsumer catch (jm***ception e)

}public void getmessage(string disname)else

while(true)else

}} catch (jm***ception e) catch (interruptedexception e)

}}4、執行activemq專案

4.1 生產者開始生產訊息

public class testmq catch (interruptedexception e)

//thread 1

new thread(testmq.new productormq(producter)).start();

//thread 2

new thread(testmq.new productormq(producter)).start();

//thread 3

new thread(testmq.new productormq(producter)).start();

//thread 4

new thread(testmq.new productormq(producter)).start();

//thread 5

new thread(testmq.new productormq(producter)).start();

}private class productormq implements runnable

@override

public void run() catch (interruptedexception e) }}

}} activemq詳細入門使用教程

activemq介紹

mq是訊息中介軟體,是一種在分布式系統中應用程式藉以傳遞訊息的媒介,常用的有activemq,

rabbitmq,kafka。activemq是apache下的開源專案,完全支援jms1.1和j2ee1.4規範的jms provider實現。

特點:

1、支援多種語言編寫客戶端

2、對spring的支援,很容易和spring整合

3、支援多種傳輸協議:tcp,ssl,nio,udp等

4、支援ajax

訊息形式:

1、點對點(queue)

2、一對多(topic)

activemq測試

org.apache.activemq

activemq-all

queue的傳送**如下:

public void testmqproducerqueue() throws exception

接收**:

public void testmqconsumerqueue() throws exception catch (jm***ception e) }}

});//8、程式等待接收使用者訊息

system.in.read();

//9、關閉資源

consumer.close();

session.close();

connection.close();

}接著對topic進行測試,傳送**如下:

public void testtopicproducer() throws exception

接收**:

然後執行topic傳送:

可以看到訊息已經傳送出去。再執行topic接收:

activemq整合spring及專案中運用

org.springframework

spring-context

當然,在xml檔案中配置好的jmstemplate和destination也要注入進來:

@autowired

private jmstemplate jmstemplate;

@resource(name="itemaddtopic")

private destination destination;

然後消費者應該寫在我們的搜尋工程中,首先新增spring和activemq的jar包,然後配置xml檔案,

再編寫乙個***,當接收到訊息時,就講資料存入索引庫,xml檔案**如下:

java多執行緒 訊息佇列

1 定義乙個佇列快取池 private static list queuecache new linkedlist 2 定義佇列緩衝池最大訊息數,如果達到該值,那麼佇列檢入將等待檢出低於該值時繼續進行。private integer offermaxqueue 2000 3 定義檢出執行緒,如果佇列...

Kafka 訊息佇列 Java版

apache kafka工具類,消費者consumer類 public class consumer 初始化接收器 private void init override public void onpartitionsassigned collectionpartitions else start ...

訊息佇列 訊息佇列

輪詢排程 一次性分發所有訊息,保證訊息平均分配,不管消費者是否能正常消費 訊息應答 保證消費端能確實消費,不丟失 公平 乙個乙個分發所有訊息,在保證分發到的執行緒確認回覆後,才分發下個訊息給下個空閒的消費者,訊息持久化 保證佇列中的訊息不丟失,包括3要素 交換器 訊息佇列 訊息都必須宣告持久化 發布...