helloworld12
V2EX  ›  问与答

请教消息往队列里面发送消息,应该是同步还是异步?

  •  
  •   helloworld12 · Mar 5, 2018 · 2263 views
    This topic created in 3083 days ago, the information mentioned may be changed or developed.

    我理解应该是处理消息是异步处理,发送消息到消息队列应该要同步进行的

    如果是发送消息到消息队列是异步处理的,可能没法保证消息确定会到达消息队列吧(譬如程序崩溃)?

    然后现在公司要用 kafka 队列,我测试了下阿里云的 kafka 队列服务,同步发 10 条消息,要 19s ( 1000 条,55s ),怎么这么慢,是我哪里没理清楚吧?要用异步的方法?如果用异步的方法,怎么保证消息在程序崩溃前发送到消息队列里了

    3 replies    2018-03-06 12:53:05 +08:00
    wellsc
        1
    wellsc  
       Mar 5, 2018 via iPhone
    异步
    billlee
        2
    billlee  
       Mar 5, 2018   ❤️ 1
    发送过程都是异步的,阻塞版本的 API 也是在等后台线程把数据发出去,默认的 linger.ms 是 1 s, 所以单线程阻塞发消息 1 条要 1 秒。一定要用阻塞 API, 请把 batch.size 或 linger.ms 改小。
    iloveyou
        3
    iloveyou  
       Mar 6, 2018   ❤️ 1
    发送当然是同步啊,处理是异步。阿里云发送慢是因为你用公网发送吧,生产环境应该是内网。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4459 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:07 · PVG 12:07 · LAX 21:07 · JFK 00:07
    ♥ Do have faith in what you're doing.