最近遇到一个问题。我们的业务分为很多个小服务,消息中间件用的是 kafka 。也就是说,我们的 producer 和 consumer 数量比较大, topic 也很多。
现在重点来了, kafka 的回包比较大。。也就是说 如果有效数据是 10 字节,这个包有 10KB (夸张用法)。这样子一来,服务器的带宽占用非常高。跨机房的话,这笔流量费用是巨大的。
各位大大,,你们有遇到过么?有什么解决方案么?
1
cloudzhou 2016-11-11 18:36:32 +08:00
使用二进制协议?让数据包更小?
|
2
h3nng 2016-11-11 20:23:16 +08:00 via iPhone
可以考虑用压缩, Kafka 支持端到端压缩的,建议采用非 zip 压缩
|
3
xiamx 2016-11-11 22:25:02 +08:00
可以部署个 kafka 集群,根据 topic 进行 partitioning 尽量减少跨机房的流量
|
4
limbo0 2016-11-12 00:34:16 +08:00
不是专家, 公司用 snappy 压缩, lz 可以试试, 另外不知道怎么读的 有效数据占这么点? 可以适当增加一次读入的 size 吧
|