ActiveMQ實現訊息佇列

2021-09-14 05:40:38 字數 2796 閱讀 9235

實現訊息佇列

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

2829

3031

32

@service

public class providerservice

});}

}

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

26

@service

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

123

4567

891011

1213

public class testclass 

}

123

4567

891011

1213

14

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

2829

3031

3233

3435

<?xml version="1.0" encoding="utf-8"?>

org.springframework.web.context.contextloaderlistener

contextconfiglocation

classpath*:spring-ioc.xml

org.springframework.web.util.introspectorcleanuplistener

dispatcher

org.springframework.web.servlet.dispatcherservlet

contextconfiglocation

classpath:spring-mvc.xml

1dispatcher

/

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

2829

3031

3233

@controller

public class mqcontroller

/*** 接收訊息

* @return

*/public string get()

}將專案加入tomcat,並啟動,瀏覽器訪問傳送和接收,可看到和控制台一樣的效果

123

4567

891011

1213

1415

1617

1819

20

/**

* 建立乙個佇列的監聽者

* 有訊息進入到佇列之後會自動消費

* 需要實現messagelistener介面

* @author muty**/

@component

public class listener implements messagelistener catch (jm***ception e) }}

- 在spring配置檔案中對監聽者進行配置
123

4567

89

123

4567

891011

1213

1415

1617

1819

這時,我們在增加乙個監聽者,並且讓兩個監聽者監聽同乙個佇列

因為當前是生產者,消費者模式,所以 佇列在進入了乙個訊息之後,該訊息只能被兩個監聽者中的其中乙個所消費,執行的效果是交替執行

增加第二個監聽者類

@component

public class listenertwo implements messagelistener catch (jm***ception e) }}

123

4567

891011

12

多次執行測試**檢視結果,或者在瀏覽器向send處理器傳送多次請求,

會傳送,同一時間,一條訊息只能被乙個監聽者所消費

123

4567

891011

以上,無論是手動接收訊息,還是監聽者自動消費訊息,都是基於生產者/消費者模式

將訊息佇列的模式更改為發布者/訂閱者模式

在spring配置檔案中增加乙個topic

讓兩個監聽者都監聽這個topic

ActiveMQ訊息佇列

這個東西沒接觸到的時候挺懵的,用過一次之後,哇哦 public class producter catch jm ception e public void sendmessage string disname,listlist else thread.sleep 1000 int num coun...

activeMQ訊息佇列

session.auto acknowledge。當客戶成功的從receive 方法返回的時候,或者從messagelistener.onmessage方法成功返回的時候,會話自動確認客戶收到的訊息。session.client acknowledge。客戶通過訊息的 acknowledge 方法確...

activemq佇列訊息小結

jms開發基本步驟 1.建立連線工廠connectionfactory new connectionfactory 2.建立連線connection connectionfactory.createconnection 3.開啟連線connection.start 4.建立會話session con...