消息中间件学习之JMS(3)

本篇主要介绍PUB/SUB模式

PUB/SUB模式区别于P2P模式,PUB/SUB模式下一个消息可以被多个消费者消息。消息生产者需要指定一个主题,即Topic。所有订阅该主题的消费者都能消费该生产者发送的消息。上代码:

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

Topic topic = new ActiveMQTopic("LzyTopic");//此处创建一个主题

consumer1 = session.createConsumer(topic);//消费者1

consumer1.setMessageListener(new MessageListener() {

              @Override

                public void onMessage(Message arg0) {

                               TextMessage tm = (TextMessage) arg0;

                               if (tm != null) {

                                    try {

                                           System.out.println("consume1 and topic is"+ tm.getText());

                                    } catch (JMSException e) {

                                           e.printStackTrace();

                                    }

                                     }

                          }});///消费者1增加消息监听

consumer2 = session.createConsumer(topic);//消费者2

consumer2.setMessageListener(new MessageListener() {

           @Override

            public void onMessage(Message arg0) {

                      TextMessage tm = (TextMessage) arg0;

                      if (tm != null) {

                       try {

                                 System.out.println("consume2 and topic is"+ tm.getText());

                        } catch (JMSException e) {

                               e.printStackTrace();

                       }

                    }

             }});//消费者2增加消息监听

创建了2个消费者,都订阅了名字为"LzyTopic"的topic。接下来的代码在创建一个生产者,同样也是指定topic。

producer = session.createProducer(topic);//和消费者同样的topic

for (int i = 0; i <5; i++) {

      TextMessage tm=session.createTextMessage("Message"+i);

      producer.send(tm);//发送消息

}

打印结果如下:

consume1 and topic isMessage0

consume2 and topic isMessage0

consume1 and topic isMessage1

consume2 and topic isMessage1

consume1 and topic isMessage2

consume2 and topic isMessage2

consume1 and topic isMessage3

consume2 and topic isMessage3

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,...
    Bobby0322阅读 10,926评论 0 24
  • 一、 消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。实现高性能...
    步积阅读 57,085评论 10 138
  • ActiveMQ简单的示例 下载ActiveMQ 去官方网站下载:http://activemq.apache.o...
    花丶小伟阅读 223评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,908评论 18 139
  • 《形而上学》卷七·章一至章六 卷七详细讨论了本体的概念。在卷五第七章中亚里士多德已经将“是(存在)”划分为了四类即...
    YUE__阅读 1,550评论 0 2