V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
1800x
V2EX  ›  Go 编程语言

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

  •  
  •   1800x · 2024-05-16 10:28:34 +08:00 via Android · 5087 次点击
    这是一个创建于 445 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用于小型分布式微服务系统
    要求:
    1 几乎没有资源消耗
    2 上手、维护简单
    3 没有单点故障
    4 支持发布/订阅
    5 支持失败重试
    6 支持定时/延时消息
    7 支持 go python

    目前主流消息队列,资源消耗大、维护困难。
    数据储存可以用 mysql redis 。这两样一般的系统都有。
    当然,这个消息队列上传输的数据量不大。
    33 条回复    2024-06-05 10:33:27 +08:00
    ipwx
        1
    ipwx  
       2024-05-16 10:30:46 +08:00
    redis 都支持。。。
    ipwx
        2
    ipwx  
       2024-05-16 10:31:02 +08:00
    iqingqian
        3
    iqingqian  
       2024-05-16 10:36:28 +08:00
    1800x
        4
    1800x  
    OP
       2024-05-16 10:37:10 +08:00 via Android
    @iqingqian 这货不支持“订阅”。客户端会收到全部任务,没得选
    qingshanyuluo
        5
    qingshanyuluo  
       2024-05-16 10:43:29 +08:00
    那两个流行的消息队列本来也不重啊
    ChoateYao
        6
    ChoateYao  
       2024-05-16 10:44:19 +08:00
    用 redis 自己搞一个
    就用 set 维持一个订阅列表,每个名称都是一个 redis 队列。
    hui314
        7
    hui314  
       2024-05-16 10:46:22 +08:00
    beanstalkd
    gesse
        8
    gesse  
       2024-05-16 10:48:34 +08:00
    mqtt ?
    mightybruce
        9
    mightybruce  
       2024-05-16 10:53:42 +08:00
    1.云原生 nats.io
    2.redis stream
    3. 自己用消息中间件 zeromq 或 nanomsg 自己封装一下想有什么功能就有什么功能。
    zeromq 几乎有所有流行语言的库
    mightybruce
        10
    mightybruce  
       2024-05-16 10:58:44 +08:00
    nanomsg 有好几种语言的实现,原来是为了进入 linux 内核,把 zeromq 用 C 改写了,现在也有纯 go 语言实现。
    https://github.com/nanomsg/mangos
    yjhatfdu2
        11
    yjhatfdu2  
       2024-05-16 11:06:30 +08:00
    nats jetstream 只有 6 大概没有其他全符合
    dododada
        12
    dododada  
       2024-05-16 11:31:33 +08:00
    nsq , 但是 5 不确定是否支持,可能要自己写
    rekulas
        13
    rekulas  
       2024-05-16 11:37:42 +08:00
    rabbitmq docker 一键运行内存占用几十 用了很多年了
    8355
        14
    8355  
       2024-05-16 11:41:02 +08:00
    推荐 redis stream
    有消费者组 目前我们深度应用,阿里云 2g 的 redis 跑的飞起
    有消费和重试机制
    evam
        15
    evam  
       2024-05-16 11:44:36 +08:00
    总感觉你在说 redis 啊
    LieEar
        16
    LieEar  
       2024-05-16 11:52:34 +08:00
    我推荐一个,celery
    https://github.com/celery/celery
    xubeiyou
        17
    xubeiyou  
       2024-05-16 12:17:43 +08:00
    Redis 或者是 mqtt
    dwu8555
        18
    dwu8555  
       2024-05-16 12:22:02 +08:00 via iPhone
    @1800x 支持订阅啊,你设置需要处理的 queue 就行了
    allenby
        19
    allenby  
       2024-05-16 12:35:00 +08:00 via Android
    codersdp1
        20
    codersdp1  
       2024-05-16 14:13:59 +08:00
    @iqingqian 这个还可以
    BeijingBaby
        21
    BeijingBaby  
       2024-05-16 14:17:18 +08:00
    既然分布式了,不太可能还很轻量吧。毕竟各种情况都要考虑到。
    904653238
        22
    904653238  
       2024-05-16 14:17:28 +08:00
    @8355 用 redis stream, 你们的流重分配是自己做的吗?
    8355
        23
    8355  
       2024-05-16 15:00:28 +08:00
    @904653238 这个没啥难度是自己做的,重新投递即可,stream 内部机制可以记录重试次数和超时时间。
    904653238
        24
    904653238  
       2024-05-16 15:11:36 +08:00
    @8355 能交流下吗? OTA0NjUzMjM4
    Scarb
        25
    Scarb  
       2024-05-16 16:07:19 +08:00
    rabbitmq
    xsen
        26
    xsen  
       2024-05-16 17:00:51 +08:00
    nsq
    nats
    su14772
        27
    su14772  
       2024-05-16 20:22:24 +08:00
    redis stream 不就可以么
    update
        28
    update  
       2024-05-16 22:05:06 +08:00
    redis stream
    yougg
        29
    yougg  
       2024-05-17 09:46:47 +08:00 via Android
    zzhaolei
        30
    zzhaolei  
       2024-05-17 14:45:40 +08:00
    IDAEngine
        31
    IDAEngine  
       2024-05-17 21:32:50 +08:00
    rabbitmq
    6HWcp545hm0RHi6G
        32
    6HWcp545hm0RHi6G  
       2024-05-28 09:38:30 +08:00
    pulsar https://pulsar.apache.org/

    要是测试用,用镜像一键拉起服务,方便快捷。
    dyllen
        33
    dyllen  
       2024-06-05 10:33:27 +08:00
    redis 吧,不用额外引入外部组件,引入一个 redis 队列的库就能用了。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5166 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 09:37 · PVG 17:37 · LAX 02:37 · JFK 05:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.