ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息中间件。
ActiveMQ 的安装在此不做介绍,大家可以自行百度。ActiveMQ安装后,启动可以通过Web页面访问,URL:http://127.0.0.1:8161/,如图所示:
点击“Queues | Topics ”可以查询消息数量。
ActiveMQ默认使用的TCP连接端口是61616.
ActiveMQ的编码模板:
发送端:
public class QueueSender {
public static void main(String[]args)throws JMSException {
//通过username,password,url创建连接工厂接口
ConnectionFactory factory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,"tcp://localhost:61616");
//通过连接工厂创建一个新的连接接口
Connection connection = factory.createConnection();
//通过连接接口创建一个会话接口
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
//会话接口创建有关主题的目标接口
Destination destination = session.createQueue("test_queue");
//会话接口再根据目标接口来创建一个消息生产者接口
MessageProducer producer =session.createProducer(destination);
//调用会话生成一个文本消息
Message message = session.createTextMessage("Hello World!");
//通过生产者接口Send将消息发布到ActiveMQ服务器
producer.send(message);
//关闭会话
session.close();
//关闭连接
connection.close();
}
}
消费端:
public classQueueReceiver {
public static void main(String[] args)throws JMSException {
// 通过username,password,url创建连接工厂接口
ConnectionFactory factory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,"tcp://localhost:61616");
// 通过连接工厂创建一个新的连接接口
Connection connection = factory.createConnection();
connection.start();
// 通过连接接口创建一个会话接口
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
// 会话接口创建有关主题的目标接口
Destination destination = session.createQueue("test_queue");
// 会话接口再根据目标接口来创建一个消息消费者接口
MessageConsumer consumer =session.createConsumer(destination);
// 消息消费者接收消息
TextMessage message = (TextMessage) consumer.receive();
if (null != message) {
System.out.println("收到消息:" + message.getText());
}
// 关闭会话
session.close();
// 关闭连接
connection.close();
}
}
topic与queue的区别。