有没有轻量级分布式消息队列

2024-05-16 10:28:34 +08:00
 1800x
用于小型分布式微服务系统
要求:
1 几乎没有资源消耗
2 上手、维护简单
3 没有单点故障
4 支持发布/订阅
5 支持失败重试
6 支持定时/延时消息
7 支持 go python

目前主流消息队列,资源消耗大、维护困难。
数据储存可以用 mysql redis 。这两样一般的系统都有。
当然,这个消息队列上传输的数据量不大。
5201 次点击
所在节点    Go 编程语言
33 条回复
ipwx
2024-05-16 10:30:46 +08:00
redis 都支持。。。
ipwx
2024-05-16 10:31:02 +08:00
iqingqian
2024-05-16 10:36:28 +08:00
1800x
2024-05-16 10:37:10 +08:00
@iqingqian 这货不支持“订阅”。客户端会收到全部任务,没得选
qingshanyuluo
2024-05-16 10:43:29 +08:00
那两个流行的消息队列本来也不重啊
ChoateYao
2024-05-16 10:44:19 +08:00
用 redis 自己搞一个
就用 set 维持一个订阅列表,每个名称都是一个 redis 队列。
hui314
2024-05-16 10:46:22 +08:00
beanstalkd
gesse
2024-05-16 10:48:34 +08:00
mqtt ?
mightybruce
2024-05-16 10:53:42 +08:00
1.云原生 nats.io
2.redis stream
3. 自己用消息中间件 zeromq 或 nanomsg 自己封装一下想有什么功能就有什么功能。
zeromq 几乎有所有流行语言的库
mightybruce
2024-05-16 10:58:44 +08:00
nanomsg 有好几种语言的实现,原来是为了进入 linux 内核,把 zeromq 用 C 改写了,现在也有纯 go 语言实现。
https://github.com/nanomsg/mangos
yjhatfdu2
2024-05-16 11:06:30 +08:00
nats jetstream 只有 6 大概没有其他全符合
dododada
2024-05-16 11:31:33 +08:00
nsq , 但是 5 不确定是否支持,可能要自己写
rekulas
2024-05-16 11:37:42 +08:00
rabbitmq docker 一键运行内存占用几十 用了很多年了
8355
2024-05-16 11:41:02 +08:00
推荐 redis stream
有消费者组 目前我们深度应用,阿里云 2g 的 redis 跑的飞起
有消费和重试机制
evam
2024-05-16 11:44:36 +08:00
总感觉你在说 redis 啊
LieEar
2024-05-16 11:52:34 +08:00
我推荐一个,celery
https://github.com/celery/celery
xubeiyou
2024-05-16 12:17:43 +08:00
Redis 或者是 mqtt
dwu8555
2024-05-16 12:22:02 +08:00
@1800x 支持订阅啊,你设置需要处理的 queue 就行了
allenby
2024-05-16 12:35:00 +08:00
codersdp1
2024-05-16 14:13:59 +08:00
@iqingqian 这个还可以

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

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

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

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

© 2021 V2EX