RocketMQ概念 producer:生产者,消息发送者
RocketMQ概念 组成: producer:生产者,消息发送者 producer group:生产者组,由多个生产者组成, nameSrv:路由注册中心,将 Broker:代理服务器,负责消息的存储,投递,查询 BrokerCluster:代理服务器集群,保证高可用和高可靠 consumer:消费者,消费消息 consumer gruop:消费者组,每个消费者组之间互不干扰。 消费模式: 集群消费:消费者负载均衡的消费消息 广播消费:每个消费者都各自消费全部消息,一份消息被多个消费者消费 具有以下特点: 能够保证严格的消息顺序 提供丰富的消息拉取模式 高效的订阅者水平扩展能力 实时的消息订阅机制 亿级消息堆积能力 Topic:主题,将消息进行分类,让消费者只消费自己想要的消息 Tag:将消息在Topic的基础上再次分类,消费者可以进一步细化自己想要的消息 Apache RocketMQ是一款高性能、分布式的消息中间件,常用于构建大规模分布式系统中的消息传递。它提供了稳定、高效的消息传输,确保了消息的可靠性和顺序性。以下是RocketMQ的主要概念及其详细解释: 1. **Producer**: 生产者是消息的源头,负责生成并发送消息到RocketMQ系统。一个`Producer Group`由多个`Producer`组成,它们共享同组内的配置信息,如发送策略和主题。生产者可以选择同步、异步或单向发送消息。 - **同步发送**:生产者发送消息后等待Broker的确认,确保消息被成功接收。 - **异步发送**:生产者发送消息后不等待回复,通过回调函数处理成功或失败,提高了消息发送效率。 - **单向发送**:仅发送消息,不关心结果,可能会丢失消息。 - **顺序消息**:保证消息按照特定顺序发布,通常将消息发送到同一队列。 - **延迟消息**:消息先存储在特殊Topic,达到预设时间后再投递到目标队列。 2. **NameServer**: 是RocketMQ的路由注册中心,负责维护Broker的地址信息,便于生产者和消费者查找合适的Broker进行通信。NameServer每隔10秒检查Broker是否在120秒内报告了心跳,而Broker则每30秒向NameServer上报其状态信息。 3. **Broker**: 作为代理服务器,Broker负责消息的存储、投递和查询。一个`Broker Cluster`由多个Broker构成,提供高可用性和高可靠性。 Broker有两种刷盘策略: - **ASYNC_FLUSH**: 默认异步刷盘,提高性能,但可能导致断电时的数据丢失。 - **SYNC_FLUSH**: 同步刷盘,保证消息写入磁盘后再返回确认,牺牲了性能但增强了数据安全性。 4. **Consumer**: 消费者从RocketMQ系统中获取并处理消息。消费模式分为: - **集群消费**:消费者负载均衡地消费消息,同一消息仅被一个消费者消费。 - **广播消费**:每个消费者都消费所有消息,一份消息可能被多个消费者消费。 5. **Consumer Group**: 消费者组内的消费者互不干扰,消息分配给组内的消费者。PushConsumer、SimpleConsumer和PullConsumer是RocketMQ的三种消费者类型: - **PushConsumer**:内部异步拉取消息,自动提交offset,适合并发消费。 - **SimpleConsumer**:用户需主动拉取消息和提交消费结果,适合手动控制。 - **PullConsumer**:官方未详细说明,可能是用户主动拉取消息的模型。 6. **Topic** 和 **Tag**: Topic是消息分类,消费者可以选择关注特定的Topic。Tag是Topic内的细分分类,进一步过滤消息,让消费更加精确。 7. **消息存储与索引**:消息存储在`CommitLog`中,使用顺序写提高性能。通过`ConsumerQueue`记录消息的队列分布,`IndexFile`则提供了快速定位消息的索引,通过哈希链解决哈希冲突。 8. **消息不丢失策略**:RocketMQ通过生产者、存储和消费三个阶段的机制防止消息丢失: - 发送阶段:通过ack确认和重试策略。 - 存储阶段:异步刷盘可改为同步,配合磁盘阵列保证数据安全。 - 消费阶段:消费者提交消费点位给Broker,保证消息已被处理。 RocketMQ的集群部署支持多Master-Broker架构,通过负载均衡和副本机制保证高可用。在大型分布式系统中,RocketMQ的这些特性使其成为可靠的消息传递解决方案。
- 粉丝: 9713
- 资源: 514
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助