RocketMq使用经验总结

本文详细介绍了RocketMq的基本概念,包括Producer、Consumer、Broker和NameService等,并探讨了广播消费与集群消费模式。针对生产问题,提到了消息状态不一致、消费者订阅不一致等挑战,给出了相应的解决方案。在高可用方面,分析了刷盘策略、同步双写与异步复制的优缺点。此外,还介绍了Broker的多种部署架构及其对客户端的影响,以及运维步骤和常见问题,包括监控、故障排查和配置调整。
摘要由CSDN通过智能技术生成

RocketMq简介

基本概念

Produce

消息生产者,负责产生消息,一般由业务系统负责产生消息。

Consumer

消息消费者,负责消费消息,一般是后台系统负责异步消费。

Push Consumer

Consumer的一种,应用通常向Consumer对象注册一个Listener接口,一旦收到消息,Consumer对象立刻回调Listener接口方法。

Pull Consumer

Consumer的一种,应用通常主动调用Consumer的拉消息方法从Broker拉消息,主动权由应用控制。

ProducerGroup

一类Producer的集合名称,这类Producer通常发送一类消息,且发送逻辑一致。

Consumer Group

一类Consumer的集合名称,这类Consumer通常消费一类消息,且消费逻辑一致。

Broker

消息中转角色,负责存储消息,转发消息,一般也称为Server

NameService

负责路由,管理。

广播消费

一条消息被多个Consumer消费,即使这些Consumer属于同一个Consumer Group,消息也会被Consumer Group中的每个Consumer都消费一次,广播消费中的Consumer Group概念可以认为在消息划分方面无意义。

集群消费

一个Consumer Group中的Consumer实例平均分摊消费消息。例如某个Topic有9条消息,其中一个Consumer Group有3个实例(可能是3个进程,或者3台机器),那么每个实例只消费其中的3条消息。

消费方式如图:
在这里插入图片描述

部署架构设计如图:
在这里插入图片描述

  1. Name Server是一个几乎无状态节点,可集群部署,节点之间无任何信息同步。

  2. Broker部署相对复杂,Broker分为Master与Slave,一个Master可以对应多个Slave,但是一个Slave只能对应一个Master,Master与Slave的对应关系通过指定相同的BrokerName,不同的BrokerId来定义,BrokerId为0表示Master,非0表示Slave。Master也可以部署多个。每个Broker与Name Server集群中的所有节点建立长连接,定时注册Topic信息到所有Name Server。

  3. Producer与Name Server集群中的其中一个节点(

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值