XXL-MQ v1.4.0 | 轻量级分布式消息队列
Release Notes
- 1、【重构】XXL-MQ 核心代码重构,基于“存算分离”与“分区机制”设计思想。在轻量级、分布式的基础上,强化高吞吐、海量消息及水平扩展能力。;
- 2、【新增】存算分离:消息中心(Broker)与消息存储层(Store)解耦。消息中心 提供消息OpenApi以及消息控制台管理能力;消息存储层 提供消息存储能力。得益于存算分离系统设计,消息中心支持水平扩展,支持线性提升消息吞吐及存储能力。
- 3、【新增】分区机制:针对消息数据进行分区路由计算及隔离,结合在线消费者进行 “分区动态平衡分配”(每个消费者分配负责分区区间),实现消费者与消息数据的灵活路由绑定。基于分区机制,灵活实现并行、串行、分片、Hash、广播...等多消息类型,保障系统高吞吐特性。
- 4、【增强】扩展支持多消息类型:
- 并行消息:多个消费者并行消费数据,支持轮询或随机策略。适用于消息吞吐量较大的业务场景,如邮件发送、日志记录等。
- 串行消息:同一时刻只有一个消费者消费数据,消息按照生产顺序FIFO串行消费。适用于有串行消费诉求的业务场景,如秒杀、抢单等场景;
- 分片消息:支持根据业务参数进行Hash分片,相同分片的消息数据路由至同一个消费者FIFO串行消费,不同分片的消息数据路由至不同消费者并行执行。适用于有根据业务参数分片消费的业务场景,如短信发送,可实现同一个手机号(业务参数)的消息路由至单个消费者串行消息,同时全局消息分片并行消费。
- 广播消息:消息发送后,广播发送给相关主题全部在线消费者。适用于广播消息场景,如广播通知、广播更新缓存等;
- 延时消息:支持设置消息的延迟生效时间,到达设置的生效时间时该消息才会被消费。适用于延时消费场景,如订单超时取消、定时发送邮件等;
- 失败重试消息:支持设置消息的失败重试次数,自定义重试间隔侧路,消息失败时会主动进行重试消费,直至重试次数耗尽或者消费成功。
- 5、【增强】海量消息:消息存储基于DB实现,支持Mysql、Blade多存储介质;消息存储进行冷热设计,并滚动式清理归档,支持海量消息堆积(Mysql存储支持千万级;Blade存储支持10亿级/理论无上限)。
- 6、【新增】超时控制: 支持自定义消息超时时间,消息消费超时将会主动中断;
- 7、【新增】跨语言/OpenAPI:提供语言无关的消息中心 OpenAPI(RESTFUL 格式),提供消息生产、拉取及消费等能力,实现多语言支持;
- 8、【增强】易用性提升: 一行代码即可发布一条消息,一行注解即可订阅一个消息主题,接入灵活方便;
- 9、【增强】消息可视化: 提供消息中心Web控制台,可在线管理消息主题、消息数据,查看消费数据及消费轨迹等;
- 10、【新增】容器化:提供官方Docker镜像,并实时更新推送DockerHub,进一步实现产品开箱即用;
XXL-MQ 代码接入示例:
步骤一:开发 “消费者(Consumer)” 代码
@XxlMq("topic_sample")
public void consume() {
// 获取消息内容;
String messageData = XxlMqHelper.getMessageData();
// 设置消息消费结果,可选;不设置时,默认为消费成功;
XxlMqHelper.consumeSuccess();
}
步骤二:发送(生产)消息数据
// 简单发送消息
XxlMqHelper.produce("topic_sample", "消息数据" );
// 指定延时生效时间
XxlMqHelper.produce("topic_sample", "消息数据", effectTime, );
步骤三:消息Topic管理 (可选)
登陆 “XXL-MQ消息中心” ,支持针对消息Topic进行管理维护,包括: “消息路由策略、归档清理策略、失败重试策略、超时时间控制” 等信息管理维护。
(说明:该步骤为可选操作。消费者服务启动后将会自动注册生成 Topic信息,如果没有Topic信息定制修改诉求,可忽略该步骤。)
XXL-MQ 消息中心:消息主题(Topic)管理;

XXL-MQ 消息中心:消息主题(Topic)编辑;

步骤四:消息数据管理(可选)
登陆 “XXL-MQ消息中心” ,支持线上化管理维护消息数据,包括:“查询消费轨迹”、“消息数据清理”、“消息数据归档” 等管理操作。

项目简介:
XXL-MQ是一个轻量级分布式消息队列,具备“轻量级、分布式、高吞吐(单机TPS 10W+)、海量消息(亿级)” 等特性,支持 “并行消息、串行消息、分片消息、广播消息、延迟消息、失败重试消息”多消息类型,现已开放源代码,开箱即用。

项目特性:
- 1、简单易用: 一行代码即可发布一条消息,一行注解即可订阅一个消息主题,接入灵活方便;
- 2、轻量级: 除存储层(可选,支持MySQL/Blade),无第三方依赖;部署及运维低成本、轻量级。
- 3、水平扩展:得益于存算分离系统设计,消息中心为无状态服务;消息中心(Broker)及消费者(Client)均支持集群扩展部署,线形提升消息生产及吞吐能力;
- 4、高可用/HA:消息中心内置注册发现能力,支持Broker服务以及Topic消费者动态注册;消息中心与消费者单节点故障时,可自动摘除故障节点,实现消息吞吐及消费故障转移;
- 5、高吞吐:消息生产及消费链路进行批量、并行及异步系统设计,消息存储进行冷数据及时清理归档设计,实现消息高吞吐(Mysql存储单机吞吐1W;Blade存储单机吞吐10W)。
- 6、海量消息:消息存储基于DB实现,支持Mysql、Blade多存储介质;消息存储进行冷热设计,并滚动式清理归档,支持海量消息堆积(Mysql存储支持千万级;Blade存储支持10亿级/理论无上限)。
- 7、存算分离:消息中心(Broker)设计为无状态服务,提供主题及消息控制台管理能力以及消息RPC服务能力,与消息存储层解耦;
- 8、跨语言/OpenAPI:提供语言无关的消息中心 OpenAPI(RESTFUL 格式),提供消息生产、拉取及消费等能力,实现多语言支持;
- 9、实时性:消息中心与消费者基于JsonRpc进行吞吐消费,支持毫秒级生产投递、秒级消费感知,延迟消息基于时间轮机制支持零延迟消费感知;
- 10、消息持久化:消息数据默认持久化存储,并支持Topic维度自定义清理归档策略,灵活控制消息数据滚动归档清理;
- 11、分区路由策略:针对消息数据进行分区并路由消费者,提供丰富路由策略,包括:Hash、轮询、随机、第一个、最后一个、广播;
- 12、归档策略:针对已消费完成数据滚动归档及清理,提供丰富归档策略,包括:归档保留7天、归档保留30天、归档保留90天、归档永久保留、不归档直接清理;
- 13、重试策略:针对消费失败消息,支持设置丰富重试策略,包括:固定间隔、线性间隔、随机间隔;
- 14、失败重试:针对消费失败消息,支持自定义重试次数、以及重试间隔基数,结合重试策略支持灵活消费失败重试,支持重试次数耗尽或者消费成功;
- 15、超时控制: 支持自定义消息超时时间,消息消费超时将会主动中断;
- 16、多消息类型:
- 并行消息:多个消费者并行消费数据,支持轮询或随机策略。适用于消息吞吐量较大的业务场景,如邮件发送、日志记录等。
- 串行消息:同一时刻只有一个消费者消费数据,消息按照生产顺序FIFO串行消费。适用于有串行消费诉求的业务场景,如秒杀、抢单等场景;
- 分片消息:支持根据业务参数进行Hash分片,相同分片的消息数据路由至同一个消费者FIFO串行消费,不同分片的消息数据路由至不同消费者并行执行。适用于有根据业务参数分片消费的业务场景,如短信发送,可实现同一个手机号(业务参数)的消息路由至单个消费者串行消息,同时全局消息分片并行消费。
- 广播消息:消息发送后,广播发送给相关主题全部在线消费者。适用于广播消息场景,如广播通知、广播更新缓存等;
- 延时消息:支持设置消息的延迟生效时间,到达设置的生效时间时该消息才会被消费。适用于延时消费场景,如订单超时取消、定时发送邮件等;
- 失败重试消息:支持设置消息的失败重试次数,自定义重试间隔侧路,消息失败时会主动进行重试消费,直至重试次数耗尽或者消费成功。
- 17、消息可视化: 提供消息中心Web控制台,可在线管理消息主题、消息数据,查看消费数据及消费轨迹等;
- 18、消息轨迹: 消费生产及消费轨迹日志会进行记录,并支持在线查看,辅助排查业务问题;
- 19、优先级:支持设置消息主题优先级,优先级越高,消费吞吐资源配置及保障越高;
- 20、消息失败告警:支持以Topic粒度监控消息,存在失败消息时主动推送告警邮件;默认提供邮件方式失败告警,同时预留扩展接口,可方面的扩展短信、钉钉等告警方式;
- 21、容器化:提供官方Docker镜像,并实时更新推送DockerHub,进一步实现产品开箱即用;
- 22、访问令牌(AccessToken):为提升系统安全性,消息中心和消费者客户端进行安全性校验,校验AccessToken合法性;
XXL-MQ v1.4.0 | 轻量级分布式消息队列的更多相关文章
- 分布式消息队列XXL-MQ
<分布式消息队列XXL-MQ> 一.简介 1.1 概述 XXL-MQ是一款轻量级分布式消息队列,支持串行.并行和广播等多种消息模型.现已开放源代码,开箱即用. 支持三种消息模式: ...
- 分布式服务(RPC)+分布式消息队列(MQ)面试题精选
分布式系统(distributed system)是建立在网络之上的软件系统.正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性.因此,网络和分布式系统之间的区别更多的在于高层软件(特别是 ...
- C#分布式消息队列 EQueue 2.0 发布啦
前言 最近花了我几个月的业余时间,对EQueue做了一个重大的改造,消息持久化采用本地写文件的方式.到现在为止,总算完成了,所以第一时间写文章分享给大家这段时间我所积累的一些成果. EQueue开源地 ...
- 分布式消息队列RocketMQ(一)安装与启动
分布式消息队列RocketMQ 一.RocketMQ简介 RocketMQ(火箭MQ) 出自于阿里,后开源给apache成为apache的顶级开源项目之一,顶住了淘宝10年的 双11压力 是电商产品的 ...
- EQueue - 一个纯C#写的分布式消息队列介绍2
一年前,当我第一次开发完EQueue后,写过一篇文章介绍了其整体架构,做这个框架的背景,以及架构中的所有基本概念.通过那篇文章,大家可以对EQueue有一个基本的了解.经过了1年多的完善,EQueue ...
- EQueue - 一个C#写的开源分布式消息队列的总体介绍
前言 本文想介绍一下前段时间在写enode时,顺便实现的一个分布式消息队列equeue.这个消息队列的思想不是我想出来的,而是通过学习阿里的rocketmq后,自己用c#实现了一个轻量级的简单版本.一 ...
- 分享一个c#写的开源分布式消息队列equeue
分享一个c#写的开源分布式消息队列equeue 前言 equeue消息队列中的专业术语 Topic Queue Producer Consumer Consumer Group Broker 集群消费 ...
- [转载] 基于Redis实现分布式消息队列
转载自http://www.linuxidc.com/Linux/2015-05/117661.htm 1.为什么需要消息队列?当系统中出现“生产“和“消费“的速度或稳定性等因素不一致的时候,就需要消 ...
- Netty构建分布式消息队列(AvatarMQ)设计指南之架构篇
目前业界流行的分布式消息队列系统(或者可以叫做消息中间件)种类繁多,比如,基于Erlang的RabbitMQ.基于Java的ActiveMQ/Apache Kafka.基于C/C++的ZeroMQ等等 ...
- Netty构建分布式消息队列实现原理浅析
在本人的上一篇博客文章:Netty构建分布式消息队列(AvatarMQ)设计指南之架构篇 中,重点向大家介绍了AvatarMQ主要构成模块以及目前存在的优缺点.最后以一个生产者.消费者传递消息的例子, ...
随机推荐
- Echarts与Vue3中获取DOM节点可能出现的异常错误
useTemplateRef 的简单介绍 官方:返回一个浅层 ref,其值将与模板中的具有匹配 ref attribute 的元素或组件同步. 参数匹配机制:useTemplateRe的参数需与模板 ...
- 【SfM】Colmap和openMVG尝试记录
数据集来源:http://www.maths.lth.se/matematiklth/personal/calle/dataset/dataset.html Colmap与openMVG关于SfM稀疏 ...
- 🧠ChatGPT 中文提示语大全【超全 Prompt 用法】- 已分类
基于 awesome-chatgpt-prompts 进行分类,更方便查找自己所需,炼制适合自己的ChatGPT法宝. 工作 简历写手 我需要你写一份<2年工作经验的前端工程师>的简历,你 ...
- oracle的IP访问列表
Windows版本Oracle 19c. 在sqlnet.ora中添加下面语句 tcp.validnode_checking=yes tcp.invited_nodes=(127.0.0.1,132. ...
- 搭建自己的OCR服务,第二步:PaddleOCR环境安装
PaddleOCR环境安装,遇到了很多问题,根据系统不同问题也不同,不要盲目看别人的教程,有的教程也过时了,根据实际情况自己调整. 我这边目前是使用windows 10系统+CPU + python ...
- Linux 系统出现异常排查思路
16 系统出现异常排查思路16.1 查看用户信息16.1.1查看当前的用户# who 04:39:39 up 1:30, 1 user, load average: 0.01, 0.01, 0. ...
- 使用LLaMA-Factory训练LLM大模型并用ollama调用
环境搭建 系统环境 需要Nvidia显卡,至少8G显存,且专用显存与共享显存之和大于20G 建议将非安装版的环境文件都放到非系统盘,方便重装或移植 以Windows11为例,非安装环境文件都放在 E ...
- Code Runner MCP Server,来了!
大家好!我是韩老师. 如果作为程序员的你,还不了解 MCP (Model Context Protocol) 的话,那韩老师劝你赶紧去补补课吧! 本文不对 MCP 进行详细介绍~ 简单来说,MCP i ...
- DeepSeek 官方推出的实用集成工具百宝箱,建议收藏!
项目介绍 该实用集成工具百宝箱汇聚了DeepSeek官方精心挑选和推荐的各类集成工具(其中包括:应用程序.AI Agent 框架.AI数据应用框架.RAG 框架.浏览器插件.VS Code 插件等), ...
- [每日算法 - 华为机试] leetcode690. 员工的重要性
入口 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer.https://le ...