helloworld12
V2EX  ›  问与答

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

  •  
  •   helloworld12 · Mar 5, 2018 · 2272 views
  •   You need to sign in to view this topic
    This topic created in 3089 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   ·   3106 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 14:25 · PVG 22:25 · LAX 07:25 · JFK 10:25
    ♥ Do have faith in what you're doing.