一、linux进行安装
1.官网http://activemq.apache.org/download.html下载:
2.放到linux的文件夹:/usr/local/activemq下
3.解压下载好的压缩包:tar –zxvf apache-activemq-5.15.8-bin.tar
4.到解压好的activemq中,找到bin目录,在bin目录下执行:
./activemq start
表示启动成功
5.如果只是虚拟机的话,开放端口,需要开放两个端口8161、61616;其中8161是activemq的页面访问的端口,61616是activemq的连接端口.
firewall-cmd --zone=public --add-port=8161/tcp –permanent
firewall-cmd --zone=public --add-port=61616/tcp –permanent
重启防火墙
systemctl resetart firewalld.service
6.页面连接,ip:8161/admin,用户名和密码都为admin。
二、javaapi编程方式
1.消息发送方代码编写:
package com.activemq.demo.sender;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
/**
* 发送消息
*
* @author xupf@wangreat.com
* @create 2019-01-14 10:08
*/
public class Sender {
public static void main(String[] args) throws JMSException {
// 1.连接工厂
ConnectionFactory factory = new ActiveMQConnectionFactory("admin", "admin", "tcp://192.168.187.132:61616");
// 2.连接
Connection connection = factory.createConnection();
connection.start();
// 3.创建会话
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 4.获取 Destination
Destination destination = session.createQueue("test.queue");
// 4.创建一个Producer
MessageProducer producer = session.createProducer(destination);
// 5.创建消息
TextMessage message = session.createTextMessage("this a first queue message");
producer.send(message);
// 关闭连接
session.close();
connection.close();
}
}
2.消息接收方代码编写:
package com.activemq.demo.receiver;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
/**
* 消息接收者
*
* @author xupf@wangreat.com
* @create 2019-01-14 10:19
*/
public class Consumer {
public static void main(String[] args) throws JMSException {
// 1.连接工厂
ConnectionFactory factory = new ActiveMQConnectionFactory("admin", "admin", "tcp://192.168.187.132:61616");
// 2.连接
Connection connection = factory.createConnection();
connection.start();
// 3.创建会话
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 4.获取 Destination
Destination destination = session.createQueue("test.queue");
// 5.创建一个Consumer
MessageConsumer consumer = session.createConsumer(destination);
// 6.获取消息
// TextMessage message = (TextMessage) consumer.receive();
// System.out.println(message.getText());
consumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
try {
TextMessage msg = (TextMessage) message;
System.out.println(msg.getText());
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
注:其中标红地方一定要记得写。