在公司里边,负责消息中间件这块工作,也进行了内部知识的交流。但效果不太明显呀!今天把一些 Rocketmq 的重要的知识点整理出来!
Producer
消息生产者,负责产生消息,一般由业务系统负责产生消息。Consumer
消息消费者,负责消费消息,一般是后台系统负责异步消费。拉取后的消息,是放在线程池里面的。Pull Consumer
Consumer 的一种,应用通常竹筒调用 Consumer 的拉取消息方法从 Broker 拉消息。Push Consumer
Consumer 的一种,应用那个通常向 Consumer 对象注册一个 Listener 接口,一旦收到消息,Consumer 对象立刻回调 Listener 接口方法。- Produer Group
一类 Proder 的集合名称,这类 Producer 通常发送一类消息,且发送逻辑一致 - Consumer Group
一类 Consumer 的集合名称,这类 Consumer 通常消费一类消息,且消费逻辑一致。 - Broker
消息中转角色,负责存储消息,转发消息,一般也称为 Server。
########### 消费模式
当前,在 Rocketmq 中,有集群、广播模式之分。
广播模式
一条消息被多个 Consumer 消费,即使返些 Consumer 属亍同一个 Consumer Group,消息也会被 Consumer
Group 中的每个 Consumer 都消费一次,广播消费中的 Consumer Group 概念可以讣为在消息划分方面无意义的。集群模式
一个 Consumer Group 中的 Consumer 实例平均分摊消费消息。例如某个 Topic 有 9 条消息,其中一个
Consumer Group 有 3 个实例(可能是 3 个迕程,戒者 3 台机器),那举每个实例只消费其中的 3 条消息。
在 CORBA Notification 规范中,无此消费方式。
在 JMS 规范中,JMS point-to-point model 不乀类似,但是 RocketMQ 的集群消费功能大等亍 PTP 模型。
因为 RocketMQ 单个 Consumer Group 内的消费者类似亍 PTP,但是一个 Topic/Queue 可以被多个 ConsumerGroup
消费。
########## 使用 Rokcetmq 的一些规范
假设 Topic 为 oder 。有 shop 这个应用在消费 Topic 为 order 的数据
1、生产则的命名规范:
p_ 作为开头。比如:p_order,就是 p_{topic}
2、消费者
c_ 作为开头。比如:c_order_shop_{tag}
– 为什么我们需要这种规范呢?因为我们需要做各个监控的动作!而且,如果消费者挂掉了,我们就会立马知道,哪个消费应用挂掉了。