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

2018-03-05 20:44:23 +08:00
 helloworld12

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

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

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

1762 次点击
所在节点    问与答
3 条回复
wellsc
2018-03-05 21:31:04 +08:00
异步
billlee
2018-03-05 22:03:54 +08:00
发送过程都是异步的,阻塞版本的 API 也是在等后台线程把数据发出去,默认的 linger.ms 是 1 s, 所以单线程阻塞发消息 1 条要 1 秒。一定要用阻塞 API, 请把 batch.size 或 linger.ms 改小。
iloveyou
2018-03-06 12:53:05 +08:00
发送当然是同步啊,处理是异步。阿里云发送慢是因为你用公网发送吧,生产环境应该是内网。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/435100

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX