分布式消息队列 XXL-MQ v1.2.0,集群时移除 ZK 依赖更轻量级

栏目: 后端 · 发布时间: 5年前

内容简介:XXL-MQ是一款轻量级分布式消息队列,支持 "并发消息、串行消息、广播消息、延迟消息、事务消息、失败重试、超时控制" 等消息特性。现已开放源代码,开箱即用。

Release Notes

  • 1、client端与Broker长链初始化优化,防止重复创建连接。

  • 2、POM多项依赖升级;

  • 3、UI组件升级;

  • 4、规范项目目录结构;

  • 6、超时控制;

  • 5、通讯迁移至 xxl-rpc;

  • 6、除了springboot类型示例;新增无框架示例项目 "xxl-mq-samples-frameless"。不依赖第三方框架,只需main方法即可启动运行;

  • 7、消息生产,兼容"异步批量多线程生产"+"同步生产"两种方式,提升消息发送性能;

  • 8、底层通讯全异步化:消息新增 + 消息新增接受 + 消息回调 + 消息回调接受;仅批量PULL消息与锁消息非异步;

  • 9、串行消费优化,旧版本固定第一台消费,导致其压力过大;新版支持自定义shardingId从而实现串行消息的负载均衡,缓解单台压力;

  • 10、广播消息优化,旧版本不支持消息持久化,新版本支持消息持久化,而且广播支持与串行结合实用,更加灵活;

  • 11、并发消息、串行消息、广播消息全部优化重构,底层逻辑统一,方便后续维护扩展;

    • 串行:取消ZK依赖,废弃旧版ZK锁方式;优化为通过消息 shardingId 结合消费者 排序 取模方式;相同 shardingId 的消息将会固定被同一个消费者消费;

    • 并行:沿用旧版消费者排序取模方式,不过取模参数新增支持 shardingId 参数;确保消息平均分配给在线消费者;

    • 广播:取消ZK依赖,废弃旧版ZK方式;优化为通过消息 group 属性群发方式;每个group都会消费该消息,但相同group下消息仅被消费一次;

  • 12、Broker服务支持自定义指定注册IP等信息,位置 "XxlMqBrokerImpl.initServer";

  • 13、Topic自动发现:消息中心支持动态发现Topic,并展示在消息主题列表,延时1min;

  • 14、运行报表:支持展示在线业务线、消息主题、消息记录等信息、可在线查看消息日期分布图,成功分布图等;

  • 15、业务线管理:支持设置业务线,用于分组管理消息主题;

  • 16、消息主题管理:支持在线管理消息主题,自动发现消息主题;并支持完善消息主题扩展信息,如业务线、负责人、告警邮箱等;

  • 17、消息记录界面,交互优化重构,进一步优化消息筛选、管理交互;

  • 18、自动重试优化,任务重试时,生效时间重置为1min之后,重试次数减一;

  • 19、记住密码功能优化,选中时永久记住;非选中时关闭浏览器即登出;

  • 20、事务开关:支持设置消息事务开关,开启时事务保证消息精准消费一次;未开启时小概率存在重复消费,仅依靠注册中心分片检测避免重复,但性能略高;

  • 21、告警功能:支持以Topic粒度监控消息,存在失败消息时主动推送告警邮件;

  • 22、轨迹Log优化,新增、更新时记录核心数据;消息日志格式统一;

  • 23、消息在线清理:在消息记录界面,支持在线清理消息数据;

  • 24、过期消息自动清理:消息中心新增参数 "xxl-mq.log.logretentiondays"设置消息过期天数,过期成功消息将会自动清理;

  • 25、超时强化,除了客户端支持超时控制外;服务端新增线程扫描,主动处理超时消息;消息超过 "生效时间 + 超时时间 + 1HOUT" 之后仍然未结束,将会主动标记为失败;

  • 26、左侧菜单规范:运行报表(业务线,主题数,消息记录数;总消息成功率,日分布柱状图,总分布饼图) + 消息主题 + 消息记录 + 使用教程;

  • 27、注册中心迁移至DB,基于 "long polling" 实现注册机器实时感知;注册中心代码及逻辑来源自"XXL-RPC原生轻量级注册中心";

  • 28、轻量级改造,移除对ZK依赖,仅依赖DB即可完整集群方式提供服务;缺点,非强一致性可能导致重复消费,开启事务开关可以避免该问题;

  • 29、文档示例完善,包括:并发消息、串行消息、广播消息、延迟消息、失败重试消息、超时控制消息等;

  • 30、文档完善:消息模型说明,延时消息说明、事务消息说明、失败重试、超时控制说明,

  • 31、容器化:提供官方 docker 镜像,并实时更新推送dockerhub,进一步实现产品开箱即用;

简介

XXL-MQ是一款轻量级分布式消息队列,支持 "并发消息、串行消息、广播消息、延迟消息、事务消息、失败重试、超时控制" 等消息特性。现已开放源代码,开箱即用。

分布式消息队列 XXL-MQ v1.2.0,集群时移除 ZK 依赖更轻量级

特性:

  • 1、简单易用: 一行代码即可发布一条消息; 一行注解即可订阅一个消息主题;

  • 2、轻量级: 部署简单,不依赖第三方服务,一分钟上手;

  • 3、消息中心HA:消息中心支持集群部署,可大大提高系统可用性,以及消息吞吐能力;

  • 4、消费者HA:消费者支持集群部署,保证消费者可用性;

  • 5、三种消息模式:

    • 并行消息:消息平均分配在该主题在线消费者,分片方式并行消费;适用于吞吐量较大的消息场景,如邮件发送、短信发送等业务逻辑

    • 串行消息:消息固定分配给该主题在线消费者中其中一个,FIFO方式串行消费;适用于严格限制并发的消息场景,如秒杀、抢单等排队业务逻辑;

    • 广播消息:消息将会广播发送给该主题在线消费者分组,全部分组都会消费该消息,但是一个分组下只会消费一次;适用于广播场景,如广播更新缓存等

  • 6、延时消息: 支持设置消息的延迟生效时间, 到达设置的生效时间时该消息才会被消费;适用于延时消费场景,如订单超时取消等;

  • 7、事务性: 消费者开启事务开关后,消息事务性保证只会成功执行一次;

  • 8、失败重试: 支持设置消息的重试次数, 在消息执行失败后将会按照设置的值进行消息重试执行,直至重试次数耗尽或者执行成功;

  • 9、超时控制: 支持自定义消息超时时间,消息消费超时将会主动中断;

  • 10、吞吐量: 依赖于部署的消费中心集群和DB性能;DB可借助多表提升性能,不考虑DB的情况下,吞吐量可以无限横向扩展;

  • 11、消息可见: 系统中每一条消息可通过Web界面在线查看,甚至支持编辑消息内容和消息状态;

  • 12、消息可追踪: 支持追踪每一条消息的执行路径, 便于排查业务问题;

  • 13、容器化:提供官方docker镜像,并实时更新推送dockerhub,进一步实现产品开箱即用;

  • 14、消息失败告警:支持以Topic粒度监控消息,存在失败消息时主动推送告警邮件;默认提供邮件方式失败告警,同时预留扩展接口,可方面的扩展短信、钉钉等告警方式;

  • 15、容器化:提供官方docker镜像,并实时更新推送dockerhub,进一步实现产品开箱即用;

文档地址

技术交流


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Spring Into HTML and CSS

Spring Into HTML and CSS

Molly E. Holzschlag / Addison-Wesley Professional / 2005-5-2 / USD 34.99

The fastest route to true HTML/CSS mastery! Need to build a web site? Or update one? Or just create some effective new web content? Maybe you just need to update your skills, do the job better. Welco......一起来看看 《Spring Into HTML and CSS》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具