博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
activemq---点对点/发布订阅模式简单代码示例
阅读量:4306 次
发布时间:2019-06-06

本文共 1588 字,大约阅读时间需要 5 分钟。

 activemq 消息模式流程: ConnnectionFactory --> Connection --> Session --> Message

---ConnectionFactory,通过连接工厂创建连接

ConnectionFactory factory = new ActiveMQConnectionFactory("xxx.properties");

Connection connection = factory.createConnecion();
connection.start();

---session,创建会话

final Session session = connection.createSession(false, AUTO_ACKNOWLEDGE);

---设置JMSReplyTo为一个Destination,表示需要回复的目的地

message.setJMSReplyTo(replyQueue);

---message,创建消息

Message message = session.createTextMessage("jms-active");

---queue,创建队列

Queue queue = new ActiveMQQueue("active_queue");

---topic,创建topic

Topic topic = new ActiveMQTopic("active_topic");

 

queue与topic不同之处,就在于此。二者的创建方式的不同

 

---producer,创建生产者

MessageProducer producer = session.createProducer(queue);

---设置是否可持久化

producer.setDeliveryMode(DeliveryMode.persistent或nonpersistent);

--- 设置消息的有效期

producer.setTimeToLive(3600000); 默认是0表示永不过期

 

---send message,发送消息至queue

producer.send(message);

---consumer,创建消费者
MessageConsumer consumer = session.createConsumer(queue);

---创建只接受特定消息的一个消费者,selector是一个字符串,用来过来消息

sesssion.createConsumer(destination, selector);

---receive msg,接受消息

第一种receive方法没有设置等待时间,所以消费者会一直等待。可通过int timeout设置等待的超时时间

Message receiveMsg = consumer.receive();

(TextMessge)receiveMsg.getText();

 

可知这种方式不够友好,可改用监听的方式来消费消息

consumer.setMessageListener(new MessageListener(){

  @Override

  public void onMessage(Message m) {

    TextMessage textMsg = (TextMessage) m;

    try{

      System.out.println(textMsg.getText());

    }catch(JMSException e) {

      xxx

    }

  }

});

 

消费者与生产者通过同一queue来绑定一对一关系

 

转载于:https://www.cnblogs.com/codechange/p/8961422.html

你可能感兴趣的文章
Laravel中的$loop
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel 操作redis的各种数据类型
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
laravel 定时任务秒级执行
查看>>
浅析 Laravel 官方文档推荐的 Nginx 配置
查看>>
Swagger在Laravel项目中的使用
查看>>
Laravel 的生命周期
查看>>
CentOS Docker 安装
查看>>
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Mysql出现Table 'performance_schema.session_status' doesn't exist
查看>>
MySQL innert join、left join、right join等理解
查看>>
vivado模块封装ip/edf
查看>>
sdc时序约束
查看>>
Xilinx Jtag Access/svf文件/BSCANE2
查看>>