一、activeMQ下载,直接在Linux上wget http://mirror.bit.edu.cn/apache//activemq/5.14.5/apache-activemq-5.14.5-bin.tar.gz
使用tar -zxvf 解压即可,启动activeMQ很简单,直接cd到bin目录,./activemq start即可
activeMQ的默认端口是61616,后台管理界面的端口是8161,如果你的防火墙拦截了这些端口,你需要打开这些端口或者是关闭防火墙,
vim /etc/sysconfig/iptables
修改后需要让修改生效,键入/etc/init.d/iptables restart这条命令即可
2、打开管理界面http://192.168.243.128:8161/admin,输入用户名admin,密码admin,可以看到以下界面
二、生产者代码
1 package com.aciveMQ;
2
3 import javax.jms.Connection;
4 import javax.jms.ConnectionFactory;
5 import javax.jms.JMSException;
6 import javax.jms.MessageProducer;
7 import javax.jms.Queue;
8 import javax.jms.Session;
9 import javax.jms.TextMessage;
10
11 import org.apache.activemq.ActiveMQConnectionFactory;
12
13 public class Producer {
14
15 private static final String BROKER_URL = "tcp://192.168.243.128:61616";
16
17 public static void main(String[] args) {
18 ConnectionFactory connectionFactory;// 连接工厂
19 Connection connection = null;// 连接
20 Session session = null;// 会话
21 Queue destination;// 目标
22 MessageProducer messageProducer;// 消息生产者
23
24 connectionFactory = new ActiveMQConnectionFactory(BROKER_URL);
25
26 try {
27 connection = connectionFactory.createConnection();
28
29 // 第一个参数表示是否加事物操作,第二个参数Session.AUTO_ACKNOWLEDGE表示自动确认接收,
30 //
31 session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
32 destination = session.createQueue("myFirstQueue");// 创建一个叫做myFirstQueue的目标队列
33
34 messageProducer = session.createProducer(destination);// 创建消息生产者
35 TextMessage tm = session.createTextMessage("hello world");
36
37 connection.start();
38
39 messageProducer.send(tm);
40 session.commit();// 启动了事物就必须提交,否则不能发消息
41 } catch (JMSException e) {
42 e.printStackTrace();
43 } finally {
44 if (connection != null) {
45 try {
46 session.close();
47 connection.close();
48 } catch (JMSException e) {
49 e.printStackTrace();
50 }
51 }
52
53 }
54 }
55
56
57 }
2、消费者
1 package com.aciveMQ;
2
3 import javax.jms.Connection;
4 import javax.jms.ConnectionFactory;
5 import javax.jms.JMSException;
6 import javax.jms.MessageConsumer;
7 import javax.jms.Queue;
8 import javax.jms.Session;
9 import javax.jms.TextMessage;
10
11 import org.apache.activemq.ActiveMQConnectionFactory;
12
13 /**
14 * @author may
15 *
16 */
17 public class Consumer {
18 private static final String BROKER_URL = "tcp://192.168.243.128:61616";
19
20 public static void main(String[] args) {
21
22 ConnectionFactory connectionFactory = null;// 连接工厂
23 Connection connection = null;// 连接
24 Session session = null;// 会话
25 Queue destination;// 目标
26 MessageConsumer messageConsumer;
27
28 try {
29 connectionFactory = new ActiveMQConnectionFactory(BROKER_URL);
30 connection = connectionFactory.createConnection();
31 // 第一个参数表示是否加事物操作,第二个参数Session.AUTO_ACKNOWLEDGE表示自动确认接收,
32 // 消费消息不需要加事物
33 session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
34 destination = session.createQueue("myFirstQueue");// 创建一个叫做myFirstQueue的目标主题
35 messageConsumer = session.createConsumer(destination);
36
37 connection.start();
38
39 // receive(long argue)在取到队列中的消息后,会按每1s钟的时间再次读取
40 TextMessage textMessage = (TextMessage) messageConsumer.receive(1000);
41 if (textMessage != null) {
42
43 System.out.println(textMessage.getText());
44
45 }
46
47 48
49 // System.out.println(textMessage);
50
51 } catch (JMSException e) {
52 e.printStackTrace();
53 } finally {
54 if (connection != null) {
55 try {
56 session.close();
57 connection.close();
58 } catch (JMSException e) {
59 e.printStackTrace();
60 }
61 }
62
63 }
64
65 }
66
67 }
3、pom.xml
3、pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.aciveMQ</groupId>
<artifactId>activeMQ_hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>activeMQ_hello</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.14.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
三、测试
启动生产者,然后再启动消费者,就会输出hello world。
三、测试
启动生产者,然后再启动消费者,就会输出hello world。