jms 全称 Java 消息服务 (Java Message Service),是 Java 平台中面向消息中间件的 api。用于在两个应用程序中或分布式系统中发送消息,实现异步通信。处于中间层
因此 jms 是处于应用和消息中间件之间的一个服务层
提供者: 实现 JMS 规范的消息中间件服务器
客户端: 发送或接收消息的应用程序
生产者/发布者 (Publisher): 创建发送消息的客户端
消费者/订阅者 (Subscriber): 接收并处理消息的客户端
消息: 应用程序之间传递的数据内容
消息模式: 在客户端之间传递消息的方式,JMS 中定义了主题和队列两种模式
P2P 模式
P2P 全称 Point-to-Point,也叫点对点模式,队列模式。
在 P2P 模型中,有以下几个概念:
消息队列 (Queue)、生产者 (Sender)、消费者 (Receiver)。
在这个模型中,生产者将消息发送到 queue 中,消费者从 queue 中取出并消费消息。在消费者获取消息之前,队列会一直保留消息。
消息被消费以后,queue 中就不再有这条消息了,所以消费者不可能消费到已经被消费的消息。
一个 Queue 可以存在多个消费者, 但是对一个消息而言, 只要被一个消费者读取了, 其它的消费者就不能再读到这条消息了。
例如:
劳务市场发布的岗位招聘,可以有很多个招聘者同时发布招聘岗位,也可以有很多个求职者争取岗位。但是岗位只有一个,一旦被求职者获取之后,其它的求职者不能再争取了。
Pub/Sub 模式
Pub/Sub 模式也叫主题模式,或者广播模式。
在 Pub/Sub 模型中,有几个概念: 主题(Topic)、发布者(Publisher)、订阅者(Subscriber)。
多个发布者可以发布多个主题,这些主题可以同时被多个订阅者读取;一个订阅者也可以同时订阅多个主题。
例如:
劳务市场多个招聘者持续发布招聘岗位,岗位人数不限。因此一个招聘岗位可以同时被很多个求职者关注,一个求职者也可以关注多个招聘岗位。只要一有招聘消息出现,大家都可以看到
两种模式对比
JMS 接口参数
ConnectionFactory 连接工厂,用于创建连接到消息中间件的连接工厂对象
Connection 连接,代表了应用程序和服务器之间的通信链路
Destination 目的地,指定消息发布和接收的地点,包括队列或主题
Session 会话,表示一个单线程的上下文,用于发送和接收消息
MessageConsumer 消息消费者,由 Session 来创建,用于接收发送到目标的消息
MessageProducer 消息生产者,由 Session 来创建,用于发送消息到目标
Message 消息体,是在消费者和生产者之间传送的对象,一般由消息头 、 一组消息属性以及 一个消息体组成
jmeter 队列模式 MQ
jmeter 广播模式 MQ
activeMQ 消费
下一节教大家怎么用 jmeter 压测 MQ~