点对点的消息传递中,目的地被称为队列(Queue) 点对点消息传递的特点如下: (1)每个消息只能有一个消费者,类似1对1的关系,好比个人快递自己领取自己的 (2)消息的生产者和消费者之间没有时间上的相关性。无论消费者在生产者发送消息的时候是否处于运行状态,消费者都可以提取消息。好比我们的发送短信,发送者发送后不见得接收者会立即收看(3)消息被消费后队 点对点消息传递模型在ActiveMQ中主要基于队列(Queue)实现,它具有以下特点: 1. **一对一消费**:每个消息只有一个消费者,就像个人快递一样,每个人领取属于自己的快递。在ActiveMQ中,消息被发送到一个队列后,只有注册了相应队列的消费者才能接收该消息。 2. **无时间相关性**:生产者和消费者之间没有时间上的关联。即使消费者在生产者发送消息时未运行,消费者也可以在启动后从队列中获取并消费消息。这类似于发送短信,发送者发送后,接收者可以在任何时间查看。 3. **消息消费后即删除**:一旦消息被一个消费者消费,它将从队列中移除,确保其他消费者无法再次消费同一消息。 在Java应用程序中连接ActiveMQ进行点对点通信,首先需要创建一个Maven工程,并添加ActiveMQ相关的依赖。接着,我们可以编写消息生产者和消费者程序。 **消息生产者**: 生产者通过JMS(Java Message Service)API与ActiveMQ建立连接,创建一个`MessageProducer`实例,然后使用`send()`方法将消息发送到指定的队列。例如,队列名称为`queue01`。发送完成后,可以在ActiveMQ的管理界面(http://localhost:8161/admin/queues.jsp)中看到消息已入队。 **消息消费者**: 消费者也通过JMS API与ActiveMQ建立连接,创建`MessageConsumer`实例。有两种消费消息的方式: 1. **同步阻塞方式**:使用`receive()`方法接收消息。这个方法会阻塞,直到有消息到达或者达到预设的超时时间。例如,`receive(timeout)`允许设置等待消息的时间。 2. **异步非阻塞方式**:通过注册`MessageListener`,当有新消息到达时,ActiveMQ会自动调用监听器的`onMessage(Message message)`方法,实现消息的处理。这种方式不会阻塞当前线程,提高系统的并发性能。 在ActiveMQ的管理界面中,可以实时监控队列的状态,包括等待消费的消息数量、入队和出队的消息数等。消费者运行后,消息会从队列中出队,显示已被消费。 总结来说,ActiveMQ提供了可靠的点对点消息传递机制,支持Java应用程序通过JMS API进行消息的生产和消费。开发者可以选择同步阻塞或异步非阻塞的消费模式,以适应不同的应用场景和性能需求。通过队列,消息的可靠传输和无时间相关性特性使得ActiveMQ成为企业级应用中实现解耦和异步处理的理想选择。
- 粉丝: 3
- 资源: 984
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C183579-123578-c1235789.jpg
- Qt5.14 绘画板 Qt Creator C++项目
- python实现Excel表格合并
- Java实现读取Excel批量发送邮件.zip
- 【java毕业设计】商城后台管理系统源码(springboot+vue+mysql+说明文档).zip
- 【java毕业设计】开发停车位管理系统(调用百度地图API)源码(springboot+vue+mysql+说明文档).zip
- 星耀软件库(升级版).apk.1
- 基于Django后端和Vue前端的多语言购物车项目设计源码
- 基于Python与Vue的浮光在线教育平台源码设计
- 31129647070291Eclipson MXS R.zip
评论0