V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xuxueli
V2EX  ›  推广

XXL-MQ v1.2.1 发布,分布式消息队列,单机 TPS 过万

  •  
  •   xuxueli · 2018-12-03 09:32:39 +08:00 · 1613 次点击
    这是一个创建于 2205 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Release Notes

    • 1、单机 TPS 过万:示例项目中新增功能测试、性能测试用例,以及消息生产、消费、成功率等方便的数据分析;可参考示例项目性能测试用例(章节 “ 2.6 功能测试 & 性能测试”),单机 TPS 过万;
    • 2、底层 long polling 监控 keys 非法去重问题修复;
    • 3、注册逻辑优化,批量注册,提高注册性能,降低注册中心压力;
    • 4、消息中心 RPC 服务支持自定义注册 IP 地址;
    • 5、消息中心内置注册中心线程数优化,精简;

    简介

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

    输入图片说明

    特性

    • 1、简单易用: 一行代码即可发布一条消息; 一行注解即可订阅一个消息主题;
    • 2、轻量级: 部署简单,不依赖第三方服务,一分钟上手;
    • 3、消息中心 HA:消息中心支持集群部署,可大大提高系统可用性,以及消息吞吐能力;
    • 4、消费者 HA:消费者支持集群部署,保证消费者可用性;
    • 5、三种消息模式:
      • 并行消息:消息平均分配在该主题在线消费者,分片方式并行消费;适用于吞吐量较大的消息场景,如邮件发送、短信发送等业务逻辑
      • 串行消息:消息固定分配给该主题在线消费者中其中一个,FIFO 方式串行消费;适用于严格限制并发的消息场景,如秒杀、抢单等排队业务逻辑;
      • 广播消息:消息将会广播发送给该主题在线消费者分组,全部分组都会消费该消息,但是一个分组下只会消费一次;适用于广播场景,如广播更新缓存等
    • 6、延时消息: 支持设置消息的延迟生效时间, 到达设置的生效时间时该消息才会被消费;适用于延时消费场景,如订单超时取消等;
    • 7、事务性: 消费者开启事务开关后,消息事务性保证只会成功执行一次;
    • 8、失败重试: 支持设置消息的重试次数, 在消息执行失败后将会按照设置的值进行消息重试执行,直至重试次数耗尽或者执行成功;
    • 9、超时控制: 支持自定义消息超时时间,消息消费超时将会主动中断;
    • 10、吞吐量: 依赖于部署的消费中心集群和 DB 性能;DB 可借助多表提升性能,不考虑 DB 的情况下,吞吐量可以无限横向扩展;可参考示例项目性能测试用例,单机 TPS 过万;
    • 11、消息可见: 系统中每一条消息可通过 Web 界面在线查看,甚至支持编辑消息内容和消息状态;
    • 12、消息可追踪: 支持追踪每一条消息的执行路径, 便于排查业务问题;
    • 13、消息失败告警:支持以 Topic 粒度监控消息,存在失败消息时主动推送告警邮件;默认提供邮件方式失败告警,同时预留扩展接口,可方面的扩展短信、钉钉等告警方式;
    • 14、容器化:提供官方 docker 镜像,并实时更新推送 dockerhub,进一步实现产品开箱即用;

    文档地址

    技术交流

    6 条回复    2018-12-03 13:19:07 +08:00
    WEIHUANJIHE
        1
    WEIHUANJIHE  
       2018-12-03 10:28:30 +08:00   ❤️ 1
    xuxueli
        2
    xuxueli  
    OP
       2018-12-03 10:31:15 +08:00
    单机 TPS 过万的 MQ,底层使用 Netty + Hessian 通讯( XXL-RPC )异步通讯,远远没达到上限 ~
    flame90
        3
    flame90  
       2018-12-03 12:43:36 +08:00
    建议将这种技术改一下名字,否则不好记,也不太容易推广,建议,勿喷
    xuxueli
        4
    xuxueli  
    OP
       2018-12-03 12:58:37 +08:00 via Android
    @flame90 多谢反馈!
    这是一个系列,一方面改名牵扯到十几个项目,另一方面暂时还没想到理想的名字,所以搁置了。
    mortonnex
        5
    mortonnex  
       2018-12-03 13:02:55 +08:00 via iPhone
    楼主发版太快了吧…对用的人来说压力有点大
    xuxueli
        6
    xuxueli  
    OP
       2018-12-03 13:19:07 +08:00 via Android
    @mortonnex 确实有点频繁了。主要是最近新接入一些企业用户,反馈比较多。后面尽量保持固定发版周期。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   950 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:53 · PVG 02:53 · LAX 10:53 · JFK 13:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.