下面我来详细地讲解一下“Java中间消息件ActiveMQ使用实例”的完整攻略。
什么是ActiveMQ
ActiveMQ是Apache下的一个开源项目,它实现了JMS规范,提供了消息收发的功能。ActiveMQ支持多种协议,包括TCP, SSL, NIO, UDP等等,因此可以很容易地集成到各种不同的应用中。
ActiveMQ的安装和配置
ActiveMQ可以从官网下载到二进制程序,也可以通过Maven依赖来进行安装。在安装完成后,我们需要进行一些配置才能够正常使用。
- 配置文件conf/activemq.xml: 主要包含了broker的一些配置信息,如broker的地址、访问方式、持久化方式等等。
- 配置文件conf/jetty.xml: 可选配置,用于管理web console访问的端口号和SSL设置。
- 配置文件conf/credentials.properties: 用于用户名和密码的认证,这里可以新增自定义的用户名和密码。
- 配置文件conf/log4j.properties: 用于日志输出相关的配置。
ActiveMQ的使用
发送消息
public void sendMessage() throws JMSException {
// 1. 创建连接工厂
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
"tcp://localhost:61616");
// 2. 创建连接
Connection connection = connectionFactory.createConnection();
// 3. 开启连接
connection.start();
// 4. 创建会话
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 5. 创建目标,即消息发送的目的地(队列或主题)
Destination destination = session.createTopic("test.topic");
// 6. 创建生产者
MessageProducer producer = session.createProducer(destination);
// 7. 创建消息
TextMessage message = session.createTextMessage();
message.setText("Hello World!");
// 8. 发送消息
producer.send(message);
// 9. 关闭连接
producer.close();
session.close();
connection.close();
}
- 第1步:创建连接工厂,指定ActiveMQ地址。
- 第2步:创建连接。
- 第3步:启动连接。
- 第4步:创建会话。
- 第5步:创建消息目标(队列或主题)。
- 第6步:创建生产者。
- 第7步:创建消息。
- 第8步:发送消息。
- 第9步:关闭连接。
接收消息
public void receiveMessage() throws JMSException {
// 1. 创建连接工厂
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
"tcp://localhost:61616");
// 2. 创建连接
Connection connection = connectionFactory.createConnection();
// 3. 开启连接
connection.start();
// 4. 创建会话
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 5. 创建目标,即消息消费的目的地(队列或主题)
Destination destination = session.createTopic("test.topic");
// 6. 创建消费者
MessageConsumer consumer = session.createConsumer(destination);
// 7. 消费消息
consumer.setMessageListener(message -> {
if (message instanceof TextMessage) {
try {
TextMessage textMessage = (TextMessage) message;
System.out.println("Receive message: " + textMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
});
// 8. 等待消息
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
- 第1步:创建连接工厂,指定ActiveMQ地址。
- 第2步:创建连接。
- 第3步:启动连接。
- 第4步:创建会话。
- 第5步:创建消息目标(队列或主题)。
- 第6步:创建消费者。
- 第7步:设置消息监听器。
- 第8步: 等待消息。
ActiveMQ的功能和使用场景
- 消息队列:消息生产者和消费者之间通过队列互相通信,实现异步处理。
- 发布订阅:多个消费者订阅同一个主题,生产者发布消息时,消息将被所有的订阅者接受,实现广播的效果。
- 消息持久化:将消息写入磁盘,保证消息不会在ActiveMQ服务挂掉时丢失。
- 负载均衡:在多个ActiveMQ服务器之间分布消息队列和主题,实现负载均衡的效果。
以上就是Java中间消息件ActiveMQ的使用实例和攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中间消息件ActiveMQ使用实例 - Python技术站