天天看點

ActiveMQ簡易入門

下載下傳解壓後,執行bin目錄下activemq.bat啟動mq服務

找到lib目錄并引入相關jar包

Sender消息發送者類

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

<code>package</code> <code>com.ycj.activemq;</code>

<code>import</code> <code>javax.jms.Connection;</code>

<code>import</code> <code>javax.jms.ConnectionFactory;</code>

<code>import</code> <code>javax.jms.DeliveryMode;</code>

<code>import</code> <code>javax.jms.Destination;</code>

<code>import</code> <code>javax.jms.JMSException;</code>

<code>import</code> <code>javax.jms.Message;</code>

<code>import</code> <code>javax.jms.MessageProducer;</code>

<code>import</code> <code>javax.jms.Session;</code>

<code>import</code> <code>org.apache.activemq.ActiveMQConnectionFactory;</code>

<code>public</code> <code>class</code> <code>Sender {</code>

<code>    </code><code>private</code> <code>static</code> <code>final</code> <code>String MQ_USER = </code><code>"admin"</code><code>;</code>

<code>    </code><code>private</code> <code>static</code> <code>final</code> <code>String MQ_PWD = </code><code>"admin"</code><code>;</code>

<code>    </code><code>private</code> <code>static</code> <code>final</code> <code>String MQ_URL = </code><code>"tcp://localhost:61616"</code><code>;</code>

<code>    </code><code>private</code> <code>static</code> <code>final</code> <code>String MQ_QUEUE_DEFAULT = </code><code>"testQueue"</code><code>;</code>

<code>    </code> 

<code>    </code><code>public</code> <code>static</code> <code>void</code> <code>main(String[] args) </code><code>throws</code> <code>JMSException {</code>

<code>        </code><code>// 建立JMS連接配接工廠</code>

<code>        </code><code>ConnectionFactory factory = </code><code>new</code> <code>ActiveMQConnectionFactory(MQ_USER, MQ_PWD, MQ_URL);</code>

<code>        </code><code>// 通過工廠擷取連結并啟動</code>

<code>        </code><code>Connection connection = factory.createConnection();</code>

<code>        </code><code>connection.start();</code>

<code>        </code><code>// 建立session</code>

<code>        </code><code>Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);</code>

<code>        </code><code>// 建立destination 消息目的地</code>

<code>        </code><code>Destination destination = session.createQueue(MQ_QUEUE_DEFAULT);</code>

<code>        </code><code>// 根據destination初始化一個生産者</code>

<code>        </code><code>MessageProducer producer = session.createProducer(destination);</code>

<code>        </code><code>// 生産者消息不持久化</code>

<code>        </code><code>producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);</code>

<code>        </code><code>// 生成消息 并發送</code>

<code>        </code><code>Message msg1 = session.createTextMessage(</code><code>"I'm msg1"</code><code>);</code>

<code>        </code><code>Message msg2 = session.createTextMessage(</code><code>"I'm msg2"</code><code>);</code>

<code>        </code><code>producer.send(msg1);</code>

<code>        </code><code>producer.send(msg2);</code>

<code>        </code><code>session.commit();</code>

<code>        </code><code>connection.close();</code>

<code>        </code><code>System.out.println(</code><code>"producer send msg done!"</code><code>);</code>

<code>    </code><code>}</code>

<code>}</code>

Receiver消息接收者類

<code>import</code> <code>javax.jms.MessageConsumer;</code>

<code>import</code> <code>javax.jms.TextMessage;</code>

<code>public</code> <code>class</code> <code>Receiver {</code>

<code>        </code><code>// 根據destination初始化一個消費者</code>

<code>        </code><code>MessageConsumer consumer = session.createConsumer(destination);</code>

<code>        </code><code>while</code> <code>(</code><code>true</code><code>) {</code>

<code>          </code><code>TextMessage msg = (TextMessage) consumer.receive(</code><code>1000</code><code>*</code><code>1000</code><code>);</code>

<code>          </code><code>if</code> <code>(</code><code>null</code> <code>!= msg) {</code>

<code>              </code><code>System.out.println(</code><code>"message has been received:"</code> <code>+ msg.getText());</code>

<code>          </code><code>} </code>

<code>        </code><code>}</code>

依次運作Receiver和Sender,控制台輸出:

Sender

Receiver

打開浏覽器輸入http://localhost:8161/admin/index.jsp,選擇Queues可以監控隊列消費情況

本文轉自 ycj7126168 51CTO部落格,原文連結:http://blog.51cto.com/developerycj/2052615