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

2020-05-29 10:29:59 +08:00
 marknown

背景

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

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

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

Queueman 介绍

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

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

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

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

2563 次点击
所在节点    Go 编程语言
6 条回复
wysnylc
2020-05-29 11:09:38 +08:00
三年后如果你还在维护,这个还是有希望占领一部分市场的
coosir
2020-05-29 11:40:06 +08:00
严重支持!对于中小型项目,这种模式非常合适
marknown
2020-05-29 13:39:13 +08:00
可以先在小项目上用吧。比较方便。目前这个软件在我们公司生产环境跑了一个月,处理了 5000W 条的数据,很稳定。
OakScript
2020-05-29 16:40:12 +08:00
配置文件用 yaml 更主流一点?
marknown
2020-05-31 17:57:35 +08:00
@OakScript 之前选过型,json 我更了解一些。后面看看 yaml,感谢。
vus520
2020-06-17 12:14:05 +08:00
如果是 Redis,怎么实现延迟队列的效果?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/676574

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX