什么是点对点模型(P2P)?ActiveMQ如何实现它?

点对点模型(P2P)是一种消息通信模型,特点是:

  1. 消息生产者发送消息到队列或主题。
  2. 消息消费者从队列或主题消费消息。
  3. 消息会被投递给一个消费者。

ActiveMQ 中使用 Queue 来实现点对点模型,示例代码如下:
生产者:

ConnectionFactory factory = new ActiveMQConnectionFactory(url); 
Connection connection = factory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

// 创建 Queue
Queue queue = session.createQueue("myQueue");  

// 消息生产者
MessageProducer producer = session.createProducer(queue);
producer.send(session.createTextMessage("Hello"));

消费者:

ConnectionFactory factory = new ActiveMQConnectionFactory(url);  
Connection connection = factory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

// 消息消费者
Queue queue = session.createQueue("myQueue"); 
MessageConsumer consumer = session.createConsumer(queue);

// 消息消费
Message message = consumer.receive(); 

在点对点模型中:

  1. 消息生产者发送消息到 Queue。
  2. Queue 中的消息会被投递给一个消费者。
  3. 消费者消费 Queue 中的消息。