V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
liangxiangdong
V2EX  ›  问与答

rabbitmq 使用问题

  •  
  •   liangxiangdong · Sep 8, 2020 · 1804 views
    This topic created in 2062 days ago, the information mentioned may be changed or developed.
    rabbitmq 使用了 topic 模式后发现多个消费者是轮询的方式消费的,有大佬知道在不改变 topic 模式下这么让队列分发不同消费者而且不重复消费呢
    10 replies    2020-09-10 15:52:35 +08:00
    QINFENGXULAI
        1
    QINFENGXULAI  
       Sep 8, 2020
    引入缓存机制解决重复消费问题
    liangxiangdong
        2
    liangxiangdong  
    OP
       Sep 8, 2020
    @QINFENGXULAI 有什么办法解决多个消费者同时消费呢,用 topic 模式 我发现 c1 和 c2 进行消费的时候是轮询的 不能同时消费
    TtTtTtT
        3
    TtTtTtT  
       Sep 8, 2020
    给每个消费者弄一个 Queue 就行了。
    miscnote
        4
    miscnote  
       Sep 8, 2020
    同时消费你需要 fanout exchange.
    miscnote
        5
    miscnote  
       Sep 8, 2020
    重复消费问题一般通过 message id 来解决。
    QINFENGXULAI
        6
    QINFENGXULAI  
       Sep 8, 2020
    @liangxiangdong RabbitMQ 不支持队列层面的广播消费,可以通过绑定多个队列实现
    jtwor
        7
    jtwor  
       Sep 8, 2020
    最近也在看 rabbitmq 但不太理解 mq 加入后 客户端到数据访问层是怎样的逻辑 例如以前是直接调接口 现在加入了 mq 是先 客户端->mq 服务端->各种接口->数据库 这样吗? 如果是这样 mq 服务端是不断通过建立 Channel 来区分具体业务?
    liangxiangdong
        8
    liangxiangdong  
    OP
       Sep 10, 2020
    @QINFENGXULAI @TtTtTtT @miscnote 感谢各位的解答
    liangxiangdong
        9
    liangxiangdong  
    OP
       Sep 10, 2020
    @jtwor rabbitmmq 的几种工作模式其实 exchanges 到 queue.包括最简答的 helloworld 模式都是用的 amqp 默认交换到队列的。
    我觉得区分应该使用的 exchanges 因为 exchanges 可以绑定队列
    liangxiangdong
        10
    liangxiangdong  
    OP
       Sep 10, 2020
    @jtwor 如果我有说的不对欢迎指正 毕竟我不是开发 只是个运维。生产中看到代码全是指定的 exchanges 通过路由 key 来指定那个业务区消费
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2473 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 09:18 · PVG 17:18 · LAX 02:18 · JFK 05:18
    ♥ Do have faith in what you're doing.