kafka 流量大

2016-11-11 15:37:49 +08:00
 phttc

最近遇到一个问题。我们的业务分为很多个小服务,消息中间件用的是 kafka 。也就是说,我们的 producer 和 consumer 数量比较大, topic 也很多。

现在重点来了, kafka 的回包比较大。。也就是说 如果有效数据是 10 字节,这个包有 10KB (夸张用法)。这样子一来,服务器的带宽占用非常高。跨机房的话,这笔流量费用是巨大的。

各位大大,,你们有遇到过么?有什么解决方案么?

4815 次点击
所在节点    Kafka
5 条回复
cloudzhou
2016-11-11 18:36:32 +08:00
使用二进制协议?让数据包更小?
h3nng
2016-11-11 20:23:16 +08:00
可以考虑用压缩, Kafka 支持端到端压缩的,建议采用非 zip 压缩
xiamx
2016-11-11 22:25:02 +08:00
可以部署个 kafka 集群,根据 topic 进行 partitioning 尽量减少跨机房的流量
limbo0
2016-11-12 00:34:16 +08:00
不是专家, 公司用 snappy 压缩, lz 可以试试, 另外不知道怎么读的 有效数据占这么点? 可以适当增加一次读入的 size 吧
jamesyf
2016-11-12 12:16:28 +08:00
尽量多用 batching, 一次网络沟通多发几个信息,这样你的 network 效率比较高,硬盘性能也会好很多

基本思路:
1. producer type 用 async
2. batch.size 尽量调大
3. linger.ms 适当调大

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

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

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

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

© 2021 V2EX