发送端/生产者:
package cn.itcast.activemq.test;
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class Sender {
public static void main(String[] args) throws Exception{
//第一步:建立connectionFactory工厂对象【需填入用户名、密码、要连接的地址】
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(\"admin\",\"1234\",\"tcp://localhost:61616\");
//第二步:通过ConnectionFactory工厂对象创建一个Connection连接,并且调用Connection的start方法开启连接【connection默认是关闭的】
Connection connection = connectionFactory.createConnection();
connection.start();
//第三步:通过connection创建session会话(上下文环境对象),用于接收消息,参数配置1为是否启用事务,参数配置2为签收模式【一般我们设置为自动签收】
Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
//使用事务的方式进行消息的发送
// Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
//使用CLIENT端签收的方式
//Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
//第四步:通过session创建Destination对象,指的是一个客户端用来指定生产消息目标和消费消息来源的对象,在PTP模式中,Destination被称作Queue即队列;在Pub/Sub模式,Destination被称作Topic即主题.在程序中可以使用多个Queue和Topic.
Destination destination = session.createQueue(\"first\");
//第五步:通过session对象创建消息的发送和接收对象(生产者和消费者)MessageProducer/MessageConsumer
MessageProducer messageProducer = session.createProducer(null);
//第六步:可以使用MessageProducer的setDeliveryMode方法为其设置持久化特性和非持久化特性(DeliveryMode)
//messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
//第七步:使用JMS规范的TextMessage形式创建数据(通过session对象),并用MessageProducer的send方法发送数据
for (int i = 1; i <= 10; i++) {
//TextMessage textMessage = session.createTextMessage(\"helloworld\"+i);
TextMessage textMessage = session.createTextMessage(\"我是消息内容\"+i);
//第一个参数: 目的地
//第二个参数: 消息
//第三个参数: 是否持久化
//第四个参数: 优先级【0-9 0-4表示普通 5-9表示加急 默认4】
//第五个参数: 消息在mq上的存放有效期【单位毫秒】
//messageProducer.send(destination, textMessage, DeliveryMode.NON_PERSISTENT, i, 1000*60*2);
messageProducer.send(destination, textMessage);
//TimeUnit.SECONDS.sleep(1);
System.out.println(\"生产者:\"+textMessage.getText());
}
//提交数据
session.commit();
//session.rollback();
if (connection!=null) {
connection.close();
}
}
}
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。




