那家建设网站p2p公司最好,炒股软件下载,工业和信息化部教育与考试中心,即时热榜RocketMQ 初步了解
前言#xff1a;
近期#xff0c;因公司使用 RocketMQ 作为消息队列中间件#xff0c;特此了解。 RocketMQ 是阿里巴巴在 2012 年开发的分布式消息中间件#xff0c;专为万亿级超大规模的消息处理而设计#xff0c;具有高吞吐量、低延迟、海量…RocketMQ 初步了解
前言
近期因公司使用 RocketMQ 作为消息队列中间件特此了解。 RocketMQ 是阿里巴巴在 2012 年开发的分布式消息中间件专为万亿级超大规模的消息处理而设计具有高吞吐量、低延迟、海量堆积、顺序收发等特点。 1、基本组成 主题Topic 消息传输和存储的顶层容器逻辑概念含一个或多个队列 队列MessageQueue 消息存储和传输的实际容器’ 消息Message 类型 Normal普通消息FIFO顺序消息Delay定时/延时消息Transaction事务消息 生产者Producer 构建并传输消息到服务端的运行实体传输行为 发送方式同步传输/异步传输批量发送事务行为 消费者Consumer 接收并处理消息的运行实体传输行为 消费者身份消费者必须关联一个指定的消费者分组消费者类型 消费者身份消费者必须关联一个指定的消费者分组消费者类型 PushConsumerSimpleConsumerPullConsumer 消费者本地运行配置 消费者根据不同的消费者类型控制消费者客户端本地的运行配置 消费者分组ConsumerGroup 承载多个消费行为一致的消费者的负载均衡分组逻辑概念消费行为 订阅关系投递顺序性消费重试策略 订阅关系Subscription 消费者获取消息、处理消息的规则和状态配置 消费过滤规则过滤消费者需要的消息集合消费状态消费者分组在服务端注册订阅关系后当消费者离线并再次上线后可以获取离线前的消费进度并继续消费 2、功能特性
2.1、消息发送重试和流控机制
2.1.1、消息重发
触发条件
客户端消息发送请求调用失败或请求超时网络异常造成连接失败或请求超时服务端节点处于重启或下线等状态造成连接失败服务端运行慢造成请求超时服务端返回失败错误码。 系统逻辑错误因运行逻辑不正确造成的错误系统流控错误因容量超限造成的流控错误。 2.1.2、流控机制
流控机制指当系统容量或水位过高MQ 服务端会通过快速失败返回流控错误来避免底层资源承受过高压力
触发条件
存储压力大服务端请求任务排队溢出。 2.2、消息过滤
消息过滤指将符合条件的消息投递给消费者而不是将匹配到的消息过滤掉。 注
消费者订阅了某个主题后MQ 会将该主题中的所有消息投递给消费者。消息过滤功能通过生产者和消费者对消息的属性、标签进行定义。 分类
Tag标签过滤 单Tag匹配过滤表达式为目标Tag表示只有消息标签为指定目标Tag的消息符合匹配条件才会被发送给消费者。多Tag匹配多个Tag之间为或的关系不同Tag间使用 || 隔开如Tag1||Tag2||Tag3表示标签Tag1或Tag2或Tag3的消息都满足匹配条件都会被发送给消费者进行消费。全部匹配使用星号*作为全匹配表达式表示主题下的所有消息都将被发送给消费者进行消费。 SQL属性过滤SQL92语法
对比项Tag标签过滤SQL属性过滤过滤目标消息的Tag标签消息的属性包括自定义属性以及系统属性Tag是一种系统属性过滤能力精准匹配SQL语法匹配适用场景简单过滤场景、计算逻辑简单轻量复杂过滤场景、计算逻辑较复杂2.3、负载均衡
负载均衡MQ 通过消费者负载均衡策略将主题内的消息分配给指定消费者分组中的多个消费者共同分担进而提高消费并发能力和消费者的水平扩展能力。
模式
消息粒度负载均衡PushConsumer、SimpleConsumer 默认使用 消息随机分配基于内部的单条消息确认语义实现消息被消费时加锁。 队列粒度负载均衡PullConsumer 默认使用 一个消费者对应一个队列 2.4、消费进度管理
消费进度管理定义消费者客户端启动后从哪里开始消费如何标记已消费的消息。
术语
消息位点Offset0 ~ Long.Max消息在队列中的坐标位置。最小消息位点MinOffset队列中最早一条消息的位点。最大消息位点MaxOffset队列中最新一条消息的位点。消费位点ConsumerOffset消费者消费过的最新一条消息的位点。消费位点初始值消费者首次获取消息时该时刻队列中的最大消息位点。重置消费位点功能 重置到队列中的指定位点重置到某一时刻对应的消费位点匹配位点时服务端会根据自动匹配到该时刻最接近的消费位点。 2.5、消息存储和清理机制 消息存储 管理粒度按存储节点管理消息的存储时长。判断依据以存储时间为判断依据。消息存储与消息是否被消费的状态无关。 消息过期清理机制 消息保存时长并不能完整控制消息的实际保存时间因为消息存储仍然使用本地磁盘本地磁盘空间不足时为保证服务稳定性消息仍然会被强制清理导致消息的实际保存时长小于设置的保存时长 以上内容总结于 RocketMQ 官方文档 RocketMQ 官方文档链接 https://rocketmq.apache.org/zh/docs/