原文地址:http://blog.csdn.net/zhangxs_3/article/details/4034801

  我们都知道Queue 即我们经常说的点对点或者生产者/消费者 模型。 生产者将消息发送到队列, 消费者从队列中消费消息,一个消息指能被消费一次。下面例子中启动了两个消费者一个生产者。

public class TestQueue {
  private static String brokerURL = "tcp://192.168.2.240:61616";

  private static ConnectionFactory connectionFactory;

  private static Connection connection;

  private static Session session;

  private static Destination queue;

  static{
    connectionFactory = new ActiveMQConnectionFactory(brokerURL);
    try {
      connection = connectionFactory.createConnection();
      connection.start();
      session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
      queue = session.createQueue("testqueue");
    } catch (JMSException e) {
      e.printStackTrace();
    }
  }

  public static void main(String[] args) throws Exception {
    MessageProducer producer = session.createProducer(queue);

      MessageConsumer consumer1 = session.createConsumer(queue);
    MessageConsumer consumer2 = session.createConsumer(queue);

    consumer1.setMessageListener(new MessageListener() {

      @Override
      public void onMessage(Message message) {
        try {
          String content = message.getStringProperty("content");
          System.out.println("consumer1:"+content);
        } catch (JMSException e) {
          e.printStackTrace();
        }
      }
    });

    consumer2.setMessageListener(new MessageListener() {

      @Override
      public void onMessage(Message message) {
        try {
          String content = message.getStringProperty("content");
          System.out.println("consumer2:"+content);
        } catch (JMSException e) {
          e.printStackTrace();
        }
      }
    });

    for(int i=0;i<10;i++){
      Message message = session.createMessage();
      message.setStringProperty("content", i+"");
      producer.send(message);
    }
  }
}

运行结果:

consumer1:0
consumer2:1
consumer1:2
consumer2:3
consumer1:4
consumer2:5
consumer1:6
consumer2:7
consumer1:8
consumer2:9

从结果中我们可以看出,每条消息只能被一个消费者消费,但我们并不能确定到底有哪个消费者消费。

转载于:https://www.cnblogs.com/gaohuiqian/p/5215949.html

JMS--Queue实战相关推荐

  1. 解决:A component required a bean of type ‘javax.jms.Queue‘ that could not be found.

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 情景描述:只是想简单写个 ActiveMQ 的小样,启动服务却报错: Error starti ...

  2. 深入掌握JMS(四):实战Queue

    Queue实现的是点到点模型,在下面的例子中,启动2个消费者共同监听一个Queue,然后循环给这个Queue中发送多个消息,我们依然采用ActiveMQ. view plaincopy to clip ...

  3. WebLogic JMS的强大功能组合:UOW+SAF+分布式Queue

    Weblogic 服务器提供了非常强大的JMS消息中间件平台,其性能优越,远超同类JMS产品比IBM 的MQ也快很多.并且,Weblogic JMS提供了非常强大的消息传递功能使得基于该平台的Java ...

  4. 深入掌握JMS JMSCorrelationID与Selector

    http://wangh8080.blog.163.com/blog/static/197848297201241843917244/ 深入掌握JMS(一):JSM基础 2012-05-18 16:3 ...

  5. SpringBoot整合JMS

    SpringBoot整合JMS 文章目录 SpringBoot整合JMS 前言 一.JMS.AMQP概念以及区别 二.ActiveMQ安装 三.SpringBoot整合ActiveMQ:队列模式实例 ...

  6. Camel实战第二版 第一章 初识Camel

    目录 第一部分:迈出第一步 第一章:初识Camel 第二章:Camel路由 本章包含: Camel介绍 Camel的主要功能 初次使用Camel Camel的架构与概念 从零开始构建一个复杂的系统代价 ...

  7. [z]JMS简明学习教程

    基础篇 JMS是应用系统或组件之间相互通信的应用程序接口,利用它,我们可以轻易实现在不同JVM之间相互的远程通信.要实现远程通信,RPC同样也能做到,但RPC却不可避免地增加了不同系统之间的耦合度,J ...

  8. (转)JMS简明学习教程

    转:http://www.cnblogs.com/jjj250/archive/2012/08/08/2628552.html 基础篇 JMS是应用系统或组件之间相互通信的应用程序接口,利用它,我们可 ...

  9. 使用apache的activemq集合JMS处理异步消息

    为什么80%的码农都做不了架构师?>>>    1:先去apache下载 http://activemq.apache.org/ ,大约有25M,要有点耐心 直接打开就可以使用:当然 ...

  10. EJB3.0定时发送jms(发布/定阅)方式

    EJB3.0定时发送jms(发布/定阅)方式 介绍: 定时器分为两种:single-action Timer(单动定时器)和interval  Timer(间隔定时器). 为了使用定时服务,1.ent ...

最新文章

  1. HTML label的隐藏,html – 带有可见的隐藏元素:after – CSS
  2. 苹果树(线段树+Dfs序)
  3. 小学计算机室教室的简报,高新区第三小学开展“信息技术与教育教学融合创新发展”培训...
  4. (转载)9个主流的开源许可协议[整理]
  5. 打开git界面_使用 Gitea 快速搭建私有 Git 版本控制服务
  6. Webpack实战(四):教教你如何轻松搞定-预处理器(loader)
  7. Elasticsearch单机安装
  8. nginx tornado php,tornado+nginx+python 微信公众号接入配置
  9. java正则表达式判断浮点_java正则表达式浮点数
  10. 怎么上传本地项目或文件到SVN服务器
  11. python二级通过率_计算机二级考试通过率太低?别担心,是真正备考的人变少了...
  12. 重装系统大法—WePE or 老毛桃
  13. Python3输出所有大小写字母(字母表)、数字
  14. SEM和SD的区别和联系,以及其计算方法
  15. 屠蛟之路_重伤的屠蛟俊_ThirdDay
  16. hids Elastic Security 系列1-Elastic Security介绍
  17. HDU-6447-YJJ's Salesman(离散化+01dp,线段树维护)
  18. 微信小程序api的封装使用
  19. ACM算法训练赛——STL(完结)
  20. 什么是预测区间和置信区间

热门文章

  1. 上师大计算机学院分数线,分数低还想上师范大学?这4所师范院校,二本的分数就够了...
  2. python 获取文件名_真实需求 | Python+os+openpyxl 批量获取Excel的文件名和最大行数...
  3. eve模拟器_《Re:从零开始的新伊甸征程》一步到位教你下载EVE手游
  4. 快速排序 自带时间复杂度检测
  5. 如何使用C语言的面向对象?
  6. java 命名内部类_如何把java SWT程序中的匿名内部类改写成命名内部类?
  7. ubuntu16.04下安装ibus拼音
  8. 光端机与光纤收发器的区别
  9. [渝粤教育] 天津城建大学 混凝土结构设计原理A 参考 资料
  10. 【渝粤题库】陕西师范大学700007 生态学