`
zhaohaolin
  • 浏览: 1011238 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ActiveMQ实战之 Queue点对点消息【转】

    博客分类:
  • JMS
阅读更多

对于此类消息,其实就是指使用JMS中的发P2P(点对点)消息模型的消息,下面是一个简单的例子
消息发送者

  1. package  com.googlecode.garbagecan.jmsstudy.activemq.queue;  
  2.   
  3.   
  4. import  org.apache.activemq.ActiveMQConnection;  
  5. import  org.apache.activemq.ActiveMQConnectionFactory;  
  6.   
  7. import  javax.jms.*;  
  8.   
  9. public   class  Sender {  
  10.     public   static   void  main(String[] args)  throws  JMSException {  
  11.         ConnectionFactory connectionFactory = new  ActiveMQConnectionFactory( "tcp://localhost:61616" );  
  12.         Connection connection = connectionFactory.createConnection();  
  13.         connection.start();  
  14.   
  15.         Session session = connection.createSession(false , Session.AUTO_ACKNOWLEDGE);  
  16.         Destination destination = session.createQueue("myQueue" );  
  17.           
  18.         MessageProducer producer = session.createProducer(destination);  
  19.         producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);  
  20.   
  21.         while ( true ) {  
  22.             TextMessage message = session.createTextMessage();  
  23.             message.setText("message_"  + System.currentTimeMillis());  
  24.             producer.send(message);  
  25.             System.out.println("Sent message: "  + message.getText());  
  26.   
  27.             try  {  
  28.                 Thread.sleep(1000 );  
  29.             } catch  (InterruptedException e) {  
  30.                 e.printStackTrace();  
  31.             }  
  32.         }  
  33.   
  34. //      session.close();   
  35. //      connection.stop();   
  36. //      connection.close();   
  37.     }  
  38. }  

消息接收者

  1. package  com.googlecode.garbagecan.jmsstudy.activemq.queue;  
  2.   
  3. import  org.apache.activemq.ActiveMQConnection;  
  4. import  org.apache.activemq.ActiveMQConnectionFactory;  
  5.   
  6. import  javax.jms.*;  
  7.   
  8. public   class  Receiver {  
  9.     public   static   void  main(String[] args)  throws  JMSException {  
  10.         ConnectionFactory connectionFactory = new  ActiveMQConnectionFactory( "tcp://localhost:61616" );  
  11.         Connection connection = connectionFactory.createConnection();  
  12.         connection.start();  
  13.   
  14.         Session session = connection.createSession(false , Session.AUTO_ACKNOWLEDGE);  
  15.         Destination destination = session.createQueue("myQueue" );  
  16.         MessageConsumer consumer = session.createConsumer(destination);  
  17.         consumer.setMessageListener(new  MessageListener() {  
  18.             public   void  onMessage(Message message) {  
  19.                 TextMessage tm = (TextMessage) message;  
  20.                 try  {  
  21.                     System.out.println("Received message: "  + tm.getText());  
  22.                 } catch  (JMSException e) {  
  23.                     e.printStackTrace();  
  24.                 }  
  25.             }  
  26.         });  
  27.           
  28. //      session.close();   
  29. //      connection.stop();   
  30. //      connection.close();   
  31.     }  
  32. }  

分别运行两个类,就可以看到Sender发布的消息,Receiver都可以接受到。

分享到:
评论

相关推荐

    ActiveMQ 实战

    在点对点消息传递域中,目的地被称为队列(queue),消息只能被一个消费者消费;而在发布/订阅消息传递域中,目的地被称为主题(topic),消息可被多个消费者消费。 消息生产者是会话创建的对象,用于将消息发送到...

    activeMq 实战

    根据 JMS 1.0.2 规范,有两种消息传递模型:点对点 (Point-to-Point, PTP) 和发布/订阅 (Publish/Subscribe, PUB/SUB)。 - **点对点** 模型的特点包括: - 每个消息只能有一个消费者。 - 消费者和生产者之间没有...

    activeMQ实战demo

    5. **消息类型和模式**:ActiveMQ支持点对点(Queue)和发布/订阅(Topic)两种消息模式。点对点模式下,消息仅被一个消费者接收;发布/订阅模式下,消息可以被多个订阅者接收。 6. **高级特性**:ActiveMQ还提供了...

    使用ActiveMQ示例.pdf

    在 JMS 中,主要有两个消息模型:点对点(Queue)和发布/订阅(Topic)。点对点模型中,消息由一个生产者发送到队列,一个消费者接收并处理该消息,一旦被消费,消息就会从队列中移除。而发布/订阅模型中,消息发布...

    ActiveMQ实战——实现一个简易版的聊天室

    在本篇《ActiveMQ实战——实现一个简易版的聊天室》中,我们将深入探讨如何利用Apache ActiveMQ构建一个简单的在线聊天应用。ActiveMQ是Apache软件基金会的一个开源项目,它是一款功能强大的消息中间件,用于在...

    2019实战ActiveMQ集群与应用实战视频教程

    - **定义**:ActiveMQ 是一个开源的消息中间件,它支持多种消息传递模式,如点对点 (PTP) 和发布/订阅 (Pub/Sub)。 - **特点**: - 支持多种协议,如 AMQP、STOMP、MQTT 等。 - 提供持久化存储选项,包括 KahaDB ...

    ActiveMQDemo实战.pdf

    综上所述,《ActiveMQDemo实战.pdf》涉及的知识点涵盖了消息队列的基本概念、ActiveMQ的基本使用、JMS API的编程模式、消息的生产与消费流程、以及消息服务的配置和安全性考虑。对于IT行业的专业人员来说,这些知识...

    activemq实战项目,同ssh框架整合(生产者+消费者)

    - **消息模型**:ActiveMQ支持多种消息模型,如点对点(Queue)和发布/订阅(Topic),分别适用于一对一和一对多的通信场景。 - **协议支持**:ActiveMQ支持多种消息协议,如开放消息传递接口(Openwire)、简单...

    消息队列介绍和SpringBoot2.x整合RockketMQ、ActiveMQ

    本文介绍了消息队列的基本概念和作用,重点讲解了ActiveMQ5.x的主要特性和SpringBoot2.x中如何整合及实现点对点消息的实战案例。通过对这些知识点的理解和实践,开发者能够更好地理解和应用消息队列技术,提升系统...

    activemq安装包与demo

    1. **JMS 概念**:JMS 提供了两种消息模型——点对点(Queue)和发布/订阅(Topic)。点对点模式下,每个消息仅被一个消费者接收;发布/订阅模式下,消息可被多个订阅者接收。 2. **创建连接**:使用 JMS API 创建与...

    ActiveMQ in Action

    ActiveMQ对JMS进行了实现,支持多种消息模型,如点对点(Queue)和发布/订阅(Topic)。 3. **ActiveMQ特性**: - **持久化**:ActiveMQ提供持久化的消息存储,即使在服务器故障后也能保证消息不丢失。 - **网络...

    activeMQ.zip

    这个"activeMQ.zip"压缩包包含了一个ActiveMQ的实战示例,涵盖了点对点(Peer-to-Peer, P2P)通信模式和发布/订阅(Publish/Subscribe, Pub/Sub)模型,这两种是消息队列中最常见的通信模式。 点对点模式是基于JMS的...

    ActiveMQ整合SpringBoot笔记及代码

    ActiveMQ支持发布/订阅、点对点等多种消息模式,以及事务处理、消息持久化等功能,确保了消息的可靠传输。 **二、SpringBoot整合ActiveMQ** 1. **依赖引入** 在SpringBoot项目中,我们需要添加ActiveMQ的依赖。在...

    spring 与ACTIVEMQ整合

    4. **定义Destination**:定义消息的目的地,可以是Queue(点对点)或Topic(发布/订阅模型)。 5. **配置MessageListenerContainer**:创建`DefaultMessageListenerContainer`,用于监听消息。可以设置并发消费者...

    activeMQ 与 quartz 事例

    - **队列(Queue)**:点对点模式,每条消息仅由一个消费者接收。 3. **Quartz介绍**:Quartz是一个开源的作业调度框架,可以精确控制任务的执行时间,例如定期执行数据备份、清理日志等任务。 4. **Quartz的主要...

    JMS模拟ActiveMQ代理服务器并实现消息收发

    在点对点模型中,如果消费者在接收到消息后没有确认,那么消息将保留在队列中,直到确认或超时。在发布/订阅模型中,消息一旦发布就不可撤销,但可以通过设置消息的持久性来确保即使代理服务器重启也能恢复未消费的...

    activeMQ_spring_Demo.zip_DEMO_activemq_activemq spring_rowbv3

    ActiveMQ是一款功能强大的开源消息代理,支持多种协议,如OpenWire、STOMP、AMQP、MQTT等,适用于多种应用场景,包括点对点和发布/订阅模式的消息传递。其特性包括:高可用性、持久化、事务处理、安全控制以及丰富的...

    ActiveMQ In Action.zip

    - Destination:消息的目的地,可以是Queue(点对点通信)或Topic(发布/订阅模式)。 4. **ActiveMQ的使用场景** - 异步处理:将耗时操作从主业务流程中分离,提高系统响应速度。 - 负载均衡:通过多个Consumer...

    ActiveMQ消息中间件面试专题.zip

    在Java面试中,对ActiveMQ的理解和应用能力往往是衡量开发者技能的重要标准。下面将详细讨论ActiveMQ的核心概念、功能、应用场景以及面试中可能涉及的问题。 1. **核心概念** - **消息队列**:ActiveMQ中的消息...

Global site tag (gtag.js) - Google Analytics