V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
neilp
V2EX  ›  问与答

求推荐好用的消息队列系统

  •  
  •   neilp · 2016-08-01 10:52:15 +08:00 · 4954 次点击
    这是一个创建于 3040 天前的主题,其中的信息可能已经有所发展或是发生改变。
    经常有一些比较耗时的操作, 比如发邮件,或者耗时的计算. 想专门做一台队列服务器,来做这些耗时的操作.

    请大家推荐好用的队列系统.

    目前的想法:
    1. 使用数据库, 把消息都放进数据库, 然后自己写 daemon 来读取消息并执行, 然后更新状态.

    2. httpsqs http://zyan.cc/httpsqs/ 这个看起来不错,不过貌似很久没有更新了.


    我的要求:

    1. 性能是最不重要的. 队列的消息也不会太多.

    2. 需要能 远程操作查询队列, 最好能 支持 http 协议访问, 这样方便.

    3. 不要太复杂, 简单好用.


    谢谢.
    25 条回复    2016-08-02 13:31:50 +08:00
    ipconfiger
        1
    ipconfiger  
       2016-08-01 10:53:19 +08:00
    那就用第一种, 还天然持久化了的
    neilp
        2
    neilp  
    OP
       2016-08-01 10:57:16 +08:00
    @ipconfiger 对啊, 持久化也是要求之一.

    但是第一种,自己要写的 code 略多. 主要是远程 http 访问这一块. 感觉得不偿失.
    ipconfiger
        3
    ipconfiger  
       2016-08-01 10:58:20 +08:00
    @neilp pip install requests
    harry890829
        4
    harry890829  
       2016-08-01 10:58:26 +08:00
    对于 zmq 我并不是很了解,但是你可以查看一下, zeromq
    ipconfiger
        5
    ipconfiger  
       2016-08-01 10:59:25 +08:00
    @neilp 搞错, 你说 http 管理?pip install bottle 三五下就出个简单的管理 console
    cdffh
        6
    cdffh  
       2016-08-01 11:00:46 +08:00
    数据量大了数据库的性能可能会成为瓶颈 使用 redis 的 list 结构来做队列不错. 底层是一个链表实现 进出队列的时间复杂度是 O(1) 目前我就在用.
    sarices
        7
    sarices  
       2016-08-01 11:01:38 +08:00
    一直用 httpsqs ,感觉够用了
    neilp
        8
    neilp  
    OP
       2016-08-01 11:01:44 +08:00
    @ipconfiger 对啊, 我说的主要是 数据库要暴露出 http 的访问接口.
    ipconfiger
        9
    ipconfiger  
       2016-08-01 11:10:18 +08:00
    @neilp django-admin 嘛
    mrytsr
        10
    mrytsr  
       2016-08-01 11:15:09 +08:00 via Android
    redis
    armstrong
        11
    armstrong  
       2016-08-01 11:22:08 +08:00
    Redis 的 list, lpush, rpoplpush , lrem 即可
    jerray
        12
    jerray  
       2016-08-01 11:22:50 +08:00
    RabbitMQ
    pubby
        13
    pubby  
       2016-08-01 11:45:45 +08:00
    redis 比较简单,但是 优先级,延时这种不好弄。
    RabbitMQ 有点重,数据和 hostname 绑定的,如果要迁移有些麻烦
    可以试试 beanstalk ,轻量,持久化,优先级,延时这种都有
    e1eph4nt
        14
    e1eph4nt  
       2016-08-01 12:03:21 +08:00
    AWS SQS
    mrwangrj
        15
    mrwangrj  
       2016-08-01 12:04:44 +08:00
    beanstalk 不错
    tinyproxy
        16
    tinyproxy  
       2016-08-01 13:03:13 +08:00 via iPhone
    我在这里推荐阿里云 MNS 会不会被打死
    sunus
        17
    sunus  
       2016-08-01 13:20:56 +08:00
    生产环境用像 rabbitmq 这种成熟的方案,不折腾,不蛋疼

    楼上说的阿里云, AWS 提供的消息服务也不错
    kfll
        18
    kfll  
       2016-08-01 13:22:55 +08:00
    22too
        19
    22too  
       2016-08-01 16:25:09 +08:00
    我们是 rabbitmq
    lightening
        20
    lightening  
       2016-08-01 16:28:18 +08:00
    我们用 RabbitMQ ,性能很好。简单读一读文档,概念也是挺容易懂的。
    用第三方系统好处就是发送失败的情况等他们会提供成熟的处理方法。
    wander2008
        21
    wander2008  
       2016-08-01 18:21:07 +08:00 via iPhone
    rabbitmq
    li24361
        22
    li24361  
       2016-08-01 22:27:36 +08:00
    rocketmq?
    veelog
        23
    veelog  
       2016-08-02 09:40:06 +08:00 via Android
    nginx + redis+mysql 就可以呀。。。
    veelog
        24
    veelog  
       2016-08-02 09:40:43 +08:00 via Android
    直接 http 协议访问数据库, redis 很方便
    sigmadg
        25
    sigmadg  
       2016-08-02 13:31:50 +08:00
    redis pub/sub
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2970 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:00 · PVG 23:00 · LAX 07:00 · JFK 10:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.