接上篇,今天做了个测试,看log.message.format.version对consumer性能的影响到底有多大,一共20万条数据,每条数据大小1K,总共200M。
首先在Kafka 0.9上的平均测试结果是8.362秒。
而升级到Kafka 0.10之后,平均测试结果如下:
接上篇,今天做了个测试,看log.message.format.version对consumer性能的影响到底有多大,一共20万条数据,每条数据大小1K,总共200M。
首先在Kafka 0.9上的平均测试结果是8.362秒。
而升级到Kafka 0.10之后,平均测试结果如下:
Kafka 0.10的消息格式有新的变化,加入了timestamp字段。磁盘存储的消息格式可以通过server.properties的log.message.format.version配置,默认值是0.10.0.0。
用mirrormaker在多个数据中心做Kafka的数据同步还需要考虑几个问题:
跨数据中心的数据传输,瓶颈在于带宽。我们采取的办法是启多个mirrormaker进程和压缩。
将Kafka部署在单一数据中心是一种相对比较常见的架构,所有的broker,producer和consumer都在同一个数据中心内,一般来说,也都在同一个内网里。
但考虑这样一个问题,公司在北京,上海和深圳都有业务系统,其中上海和北京会生成一些数据或日志,并且这些信息都需要被三地的业务系统所使用。假如我们考虑用Kafka来作为消息系统,那么就不得不考虑多数据中心的部署问题。
之前有多语言consume kafka的需求,因此决定采用Confluent的Kafka Rest2.0.1。虽然测试的结果不如人意(java consumer大约60M/s,但用rest的话只有5M/s),考虑到消息量不大,也能凑合用
但最近在kafka集群中新创建了200个测试的空topic,rest consumer的性能急剧降低,惨不忍睹。。。
在kafka client(consumer)的log中看到这样的异常:
1 | [13/06/16 16:01:26:153 PM CST] 550 ERROR ConsumerCoordinator: Error ILLEGAL_GENERATION occurred while committing offsets for group group7 |
5月23日Confluent官方宣布Apache Kafka 0.10正式发布。该版本包含了很多新功能和优化,这里列出比较重要的几项:
最近准备使用Kafka Mirrormaker做两个数据中心的数据同步,以下是一些要点:
1 | Properties props = new Properties(); |