05JMS点对点模式

简介: 05JMS点对点模式

一个生成者产生一个消息 只能被被一个消费者消费,消费完,消息就没有了。

消息生产者

(1)创建工程,引入依赖

<dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-client</artifactId>
        <version>5.13.4</version>
</dependency>

(2)创建生产者

public class QueueProducer {
      public static void main(String[] args) throws JMSException {
          //1.创建连接工厂
          ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616");
          //2.获取连接
          Connection connection = connectionFactory.createConnection();
          //3.启动连接
          connection.start();
         /*4.获取session  (参数1:是否启动事务,
          参数2:消息确认模式[
          AUTO_ACKNOWLEDGE = 1    自动确认
          CLIENT_ACKNOWLEDGE = 2    客户端手动确认   
          DUPS_OK_ACKNOWLEDGE = 3    自动批量确认
          SESSION_TRANSACTED = 0    事务提交并确认
         ])*/
         Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
         //5.创建队列对象
         Queue queue = session.createQueue("test-queue");
         //6.创建消息生产者
         MessageProducer producer = session.createProducer(queue);
         //7.创建消息
         TextMessage textMessage = session.createTextMessage("欢迎来到MQ世界");
         //8.发送消息
         producer.send(textMessage);
         //9.关闭资源
         producer.close();
         session.close();
         connection.close();
     }
 }

(3)运行通过界面查看

消息消费者

(1)创建消息消费者

public class QueueConsumer {
     public static void main(String[] args) throws JMSException, IOException {
          //1.创建连接工厂
          ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616");
          //2.获取连接
          Connection connection = connectionFactory.createConnection();
          //3.启动连接
          connection.start();
          //4.获取session  (参数1:是否启动事务,参数2:消息确认模式)
         Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
         //5.创建队列对象
         Queue queue = session.createQueue("test-queue");
         //6.创建消息消费者
         MessageConsumer consumer = session.createConsumer(queue);
         //7.监听消息
         consumer.setMessageListener(new MessageListener() {
             @Override
             public void onMessage(Message message) {
                 TextMessage textMessage = (TextMessage) message;
                 try {
                     System.out.println("接收到消息:"+textMessage.getText());
                 } catch (JMSException e) {
                     e.printStackTrace();
                 }
             }
         });
         //8.等待键盘输入
         System.in.read();
         //9.关闭资源
         consumer.close();
         session.close();
         connection.close();
     }
 }

(2)运行查看控制台输出与通过界面查看

目录
相关文章
|
4月前
|
消息中间件
RabbitMQ广播模式
RabbitMQ广播模式
78 1
|
4月前
|
消息中间件 存储 监控
AMQP 与其他消息协议的对比分析
【8月更文第28天】高级消息队列协议 (AMQP) 是一种开放标准的应用层协议,主要用于消息中间件。本文将对比分析 AMQP 与其他流行的协议如 MQTT 和 RMQ(通常指的是 RabbitMQ),探讨它们的特点以及适合的应用场景。
90 0
|
7月前
|
分布式计算 算法 安全
点对点(P2P)模式
点对点(P2P)模式
|
消息中间件 Java Maven
消息中间件系列教程(03) -ActiveMQ -点对点&发布订阅模式
消息中间件系列教程(03) -ActiveMQ -点对点&发布订阅模式
101 0
|
7月前
|
消息中间件 存储 物联网
AMQP(Advanced Message Queuing Protocol)是一种标准化的消息队列协议,用于异步通信和消息传递
AMQP是开放标准的消息队列协议,确保异步通信中的消息路由、可靠性和灵活性。它支持持久化、确认机制,防止消息丢失,允许灵活路由与定制,适用于多领域,如企业应用、云计算和物联网。
160 0
|
消息中间件 Java Maven
ActiveMQ向消息队列存入消息(点对点模式)
创建一个maven工程, 引入ActiveMQ的依赖
|
7月前
|
消息中间件
消息系统:点对点&发布订阅?
消息系统:点对点&发布订阅?
86 0
|
存储
06JMS发布/订阅模式
06JMS发布/订阅模式
49 0
EMQ如何实现点对点消息和发布订阅消息?
EMQ(Erlang MQTT Broker)通过 MQTT 协议实现了点对点消息和发布订阅消息两种消息传递模式。
465 2
|
消息中间件 负载均衡 Kafka
Kafka如何实现点对点消息和发布订阅消息?
Kafka 可以同时支持点对点消息和发布订阅消息模型
1006 0