Queueman 是一个用 Go 语言编写,适用于 RabbitMQ、Redis 队列的高性能分发中间件。支持延时队列、并发控制、失败自动重试。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
marknown
V2EX    Go 编程语言

Queueman 是一个用 Go 语言编写,适用于 RabbitMQ、Redis 队列的高性能分发中间件。支持延时队列、并发控制、失败自动重试。

  •  
  •   marknown 2020 年 5 月 29 日 3042 次点击
    这是一个创建于 2063 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    1. 队列越来越多,消费脚本也越来越多,通过多进程来消费队列,开销也比较大。
    2. 程序员既要写服务端代码,也要写命令行代码,还要对命令行代码进行部署,容易出错。
    3. 正常业务要延时处理,有没有比较简单的方式来实现自动延时,不用写正常业务代码,还要写延时业务代码。

    于是,是否可以有一种有新的轻量模式来取代这种传统模式,让开发人员更关注实现业务本身?让开发人员方便快捷的完成如下流程:

    1. 开发人员写 web 代码 push 数据到队列
    2. 队列中间件取出数据,转发到指定 URL 地址
    3. 开发人员写 web 代码接收并处理

    Queueman 介绍

    Queueman 是一个适用于 RabbitMQ 、Redis 队列的高性能分发中间件。支持延时队列、并发控制、失败自动重试。

    1. 简单的并发控制
    2. 简单配置就可以自动失败后重试
    3. 不用再写命令行代码就可以消费队列了

    测试理论速度:单机 1-3 万条 /秒

    详情请移步: https://github.com/marknown/queueman 欢迎大家拍砖头,一起改进。

    6 条回复    2020-06-17 12:14:05 +08:00
    wysnylc
        1
    wysnylc  
       2020 年 5 月 29 日
    三年后如果你还在维护,这个还是有希望占领一部分市场的
    coosir
        2
    coosir  
       2020 年 5 月 29 日
    严重支持!对于中小型项目,这种模式非常合适
    marknown
        3
    marknown  
    OP
       2020 年 5 月 29 日
    可以先在小项目上用吧。比较方便。目前这个软件在我们公司生产环境跑了一个月,处理了 5000W 条的数据,很稳定。
    OakScript
        4
    OakScript  
       2020 年 5 月 29 日
    配置文件用 yaml 更主流一点?
    marknown
        5
    marknown  
    OP
       2020 年 5 月 31 日
    @OakScript 之前选过型,json 我更了解一些。后面看看 yaml,感谢。
    vus520
        6
    vus520  
       2020 年 6 月 17 日
    div class="reply_content">如果是 Redis,怎么实现延迟队列的效果?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2590 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 15:28 PVG 23:28 LAX 07:28 JFK 10:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86