下载apache activemq:
http://activemq.apache.org/download-archives.html
选择自己选用版本。
这里本地测试选用window版本
解压zip文件,不做任何修改 /bin目录下有window启动文件
运行activemq.bat启动activemq服务
默认服务连接地址:tcp://localhost:61616
管理地址:http://localhost:8161
运行消息生产者代码:
@Test
public void method1() throws Exception{
/*
* 从工厂中获取一个jms connection。
* activmq默认连接端口是61616,在 conf/activemq.xml文件可查看配置
*/
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection conn = factory.createConnection();
conn.start();
/*
* 新建session
* 参数一:是否有事物
* 参数二:
* AUTO_ACKNOWLEDGE 完成消息接收时,session自动发送一个消息回执
* CLIENT_ACKNOWLEDGE 由客户端程序通过手工调用Message.acknowledge()方法显示确认接收
* DUPS_OK_ACKNOWLEDGE 让Session延迟发送确认回执
*/
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
//创建一个P2P的Queue
Destination dest = session.createQueue("com.amq.test");
//创建一个消息生产者
MessageProducer producer = session.createProducer(dest);
/*
* NON_PERSISTENT 消息只传送一次
* PERSISTENT provider持久化消息,以保证消息不会因为JMS provider的失败而丢失
*/
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
//创建一个简单的文本消息
TextMessage message = session.createTextMessage("first message");
producer.send(message);
//释放资源
producer.close();
session.close();
conn.close();
}
查看http://localhost:8161/admin/queues.jsp页面
发现有一个queue
第一列:queue名字
第二列:未处理消息数
第三列:消费者个数
第四列:入列消息数
第五列:出列消息数
运行消息消费者:
public class AMQConsumer implements Runnable {
@Override
public void run() {
try {
//获取连接
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection conn = factory.createConnection();
conn.start();
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
//创建一个consumer
Destination dest = session.createQueue("com.amq.test");
MessageConsumer consumer = session.createConsumer(dest);
//接收消息
Message message = consumer.receive(1000);
while(true){
if(message != null){
if(message instanceof TextMessage){
TextMessage tm = (TextMessage) message;
System.out.println(tm.getText());
}else{
System.out.println(message);
}
}
message = consumer.receive(1000);
}
} catch (JMSException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
//线程方式,轮询监听
new Thread(new AMQConsumer()).start();
}
}
会打印输出:first message
查看消息queue页
刚才生产消息已经被消费
- 大小: 16.7 KB
- 大小: 18.2 KB
分享到:
相关推荐
在ActiveMQ中,发送和接收消息是一个核心功能,它允许应用程序之间进行异步通信,提高系统的可扩展性和解耦性。 在ActiveMQ中发送消息,通常涉及以下步骤: 1. **创建ConnectionFactory**:ConnectionFactory是...
这篇"ActiveMQ学习笔记之九--发送消息到队列中"主要探讨的是如何通过编程方式向ActiveMQ队列发送消息,这对于理解和应用消息中间件至关重要。 首先,我们要理解ActiveMQ中的队列(Queue)概念。队列是一种先进先出...
在本文中,我们将深入探讨如何使用SpringBoot框架与Apache ActiveMQ集成,以便实现实时的消息发送和接收功能。首先,让我们简要了解一下SpringBoot和ActiveMQ。 **SpringBoot简介** SpringBoot是Spring框架的一个...
在本文中,我们将深入探讨如何使用SpringBoot、ActiveMQ和MQTT来实现消息的发送与接收。这是一个典型的分布式系统中的消息通信场景,其中SpringBoot作为应用程序框架,ActiveMQ作为消息中间件,而MQTT(Message ...
3. **消息类型**:理解JMS提供的不同消息类型,如文本消息、对象消息、流消息和二进制消息,以及如何通过ActiveMQ收发工具发送和接收这些消息。 4. **队列与主题**:熟悉ActiveMQ中的队列(Queue)和主题(Topic)...
在这个简单的例子中,我们将探讨如何利用Ajax与ActiveMQ交互,发送和接收消息。首先,你需要在服务器端设置一个ActiveMQ实例,可以通过下载并安装ActiveMQ来完成。安装完成后,启动ActiveMQ服务,这通常会开启一个...
本教程将详细介绍如何在Spring Boot项目中集成ActiveMQ,实现消息接收的Demo。 首先,我们需要在Spring Boot项目中引入ActiveMQ的相关依赖。在`pom.xml`文件中添加以下Maven依赖: ```xml <groupId>org.spring...
在这个项目中,“Android基于MQTT协议利用ActiveMQ发送消息给Android端接收”指的是Android客户端应用通过MQTT协议与ActiveMQ服务器交互,实现消息的发送和接收。这是一个典型的长连接通信方式,与传统的HTTP请求...
这个"ActiveMQ接受和发送工具.rar"压缩包包含了用于与ActiveMQ交互的实用工具,方便用户进行消息的接收和发送操作。 在使用ActiveMQ时,了解以下几个关键知识点是至关重要的: 1. **Java Message Service (JMS)**...
在本文中,我们将深入探讨如何使用`activemq-cpp`库在C++环境中发送和接收消息,并利用消息过滤器来实现特定的消息处理。`activemq-cpp`是Apache ActiveMQ的一个C++客户端,它提供了与ActiveMQ服务器进行交互的能力...
2. **创建消息生产者**:在Spring中,你可以使用`JmsTemplate`作为消息生产者,发送消息到ActiveMQ的队列或主题。配置`JmsTemplate`并设置ActiveMQ的连接工厂,然后在需要发送消息的地方调用其`convertAndSend`方法...
在本文中,我们将深入探讨如何使用ActiveMQ发送和接收基于protobuf(Protocol Buffers)协议的消息,同时也会介绍如何进行ActiveMQ的简化封装和配置自动重连机制。 首先,protobuf是Google开发的一种数据序列化协议...
它提供了发送和接收消息的线程安全环境。 4. `Producer`: 负责创建并发送消息到目的地(主题或队列)。使用`Session.CreateProducer()`方法创建。 5. `Consumer`: 用于接收消息。通过`Session.CreateConsumer()`方法...
项目使用springboot2.0.4搭建,一个父项目包含两个子项目:发送服务;监听服务;消息服务使用ActiveMQ 5.14.3,在docker中运行。 项目中有两种协议消息:activemq和mqtt。
4. **发送消息**:通过`JmsTemplate`或者`JMSTemplate`的`convertAndSend`方法可以向ActiveMQ发送消息。 **二、邮件发送功能** 邮件发送功能通常涉及以下步骤: 1. **配置邮件服务器**:在配置文件中设置SMTP...
本文将深入探讨如何在Spring环境中使用ActiveMQ来实现消息的发送与接收,以提高系统的可扩展性和解耦性。 首先,我们需要了解Spring对ActiveMQ的支持。Spring提供了`spring-jms`模块,它包含了一组丰富的API和配置...
本案例将探讨如何使用ActiveMQ实现简单消息的发送与接收。 首先,我们要理解JMS的基本概念。JMS是Java平台上的标准接口,用于与消息中间件进行交互。它定义了生产、存储、消费和检索消息的标准API。在JMS中,有两种...
而在消费者端,需要监听这个队列,接收到消息后执行实际的邮件发送操作,如使用JavaMail API发送邮件。 总的来说,这个项目提供了一种实用的方法,将邮件发送这种可能影响用户体验的操作异步化,从而优化了系统性能...
实现了ActiveMQ的初步封装,比较适合新手入门学习,简单明了