基准测试Apache Kafka:每秒写入2百万(在三台便宜的机器上)

核心的数据枢纽一定是高效的,可预测的,并且容易扩展。Kafka能够做到在普通的硬件上支撑每秒百万次写入。

Kafka的数据模型非常简单,生产者将数据发送至kafka集群,然后由消费者处理这些数据:

生产者将他们的记录发布到一个主题,消费者订阅一个或多个主题。卡夫卡主题只是一个分片式的预写日志。生产者将记录附加到这些日志中,消费者订阅更改。每条记录都是一个键/值对。该键用于将记录分配给日志分区(除非发布者直接指定分区)。

测试环境

6台相同配置的机器

Intel Xeon 2.5 GHz processor with six cores
Six RPM SATA drives
32GB of RAM
1Gb Ethernet

Kafka集群搭建在其中三台,剩下三台搭建zookeeper。

单线程生产,无复制因子

对于第一次测试,我创建了一个包含六个分区但没有复制的Topic。然后我从一个线程中尽可能快地生成五千万个小记录(100字节)。

在这些测试中关注小记录的原因在于,对于消息传递系统(通常)来说是更难的情况。如果消息很大,很容易以MB /秒为单位获得良好的吞吐量,但当消息较小时很难获得良好的吞吐量,因为处理每个消息的开销占主导地位。

我们努力确保线性磁盘I/O。这六个普通机器提供了总吞吐量为822 MB /秒的线性磁盘I / O。这实际上远远超出了我们只能使用1千兆网卡的情况。许多消息传递系统将持久性视为一种昂贵的附加功能,可以减少性能,只应该谨慎使用,但这是因为它们无法执行线性I / O。

Kafka性能的更多相关文章

  1. Kafka设计解析(五)Kafka性能测试方法及Benchmark报告

    转载自 技术世界,原文链接 Kafka设计解析(五)- Kafka性能测试方法及Benchmark报告 摘要 本文主要介绍了如何利用Kafka自带的性能测试脚本及Kafka Manager测试Kafk ...

  2. Kafka性能调优 - Kafka优化的方法

    今天,我们将讨论Kafka Performance Tuning.在本文“Kafka性能调优”中,我们将描述在设置集群配置时需要注意的配置.此外,我们将讨论Tuning Kafka Producers ...

  3. Kafka 性能篇:为何 Kafka 这么快?

    『码哥』的 Redis 系列文章有一篇讲透了 Redis 的性能优化 --<Redis 核心篇:唯快不破的秘密>.深入地从 IO.线程.数据结构.编码等方面剖析了 Redis " ...

  4. kafka性能参数和压力测试揭秘

    转自:http://blog.csdn.net/stark_summer/article/details/50203133 上一篇文章介绍了Kafka在设计上是如何来保证高时效.大吞吐量的,主要的内容 ...

  5. Kafka设计解析(五)- Kafka性能测试方法及Benchmark报告

    本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/12/31/KafkaColumn5_kafka_benchmark 摘要 本文主要介绍了如何利用 ...

  6. kafka性能基准测试

    转载请注明出处:http://www.cnblogs.com/xiaodf/ 1.测试环境 该benchmark用到了六台机器,机器配置如下 l  IntelXeon 2.5 GHz processo ...

  7. Kafka 性能测试报告

    Producer command: kafka-producer-perf-test --topic _perf-test --num-records 10000000 --record-size 1 ...

  8. 【调优】kafka性能调优

    主要优化原理和思路 kafka是一个高吞吐量分布式消息系统,并且提供了持久化.其高性能的有两个重要特点: 利用了磁盘连续读写性能远远高于随机读写的特点: 并发,将一个topic拆分多个partitio ...

  9. Kafka—性能逆天的存在

    0.引言 Kafka是LinkedIn开源出来的一款消息服务器,用Scala语言实现:这货的性能是百万级的QPS(估计是挂载了多块磁盘),我随便写个测试程序就是十万级. 1.Kafka基本概念 在Ka ...

随机推荐

  1. Perl socket编程

    In this article, let us discuss how to write Perl socket programming using the inbuilt socket module ...

  2. Elasticsearch 版本控制

    悲观并发控制(Pessimistic concurrency control) 这在关系型数据库中被广泛的使用,假设冲突的更改经常发生,为了解决冲突我们把访问区块化.典型的例子是在读一行数据前锁定这行 ...

  3. LINUX安装中文输入法和那些大坑

    明明有很多事要做,却偏偏不知道要做什么,这种感觉,很令人上火. 一.基础知识 在原生ubuntu14.04英文环境系统中只有IBus拼音,真的好难用.由于搜狗输入法确实比Linux系统下其它的中文输入 ...

  4. 处理i18n国际电话区号的代码实践

    本文转载至 http://adad184.com/2015/08/18/practice-in-i18n-dialling-code/ 前言 上周在忙产品的国际化(i18n)的问题 其中一个很重要的地 ...

  5. C/C++获取文件后缀名并且比较

    以下这段是VC中过去文件后缀名的方法 1.CString GetSuffix(CString strFileName) {         return strFileName.Right(strFi ...

  6. 正则-input控制输入

    大于0的数字:/^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/  这正则看不太懂,先放着 作者:Kevin Yang 使用正则表达式找出不包含特定字符串 ...

  7. vue笔记 - 生命周期第二次学习与理解

    对于刚接触vue一两个月.才仅仅独立做过一两个vue项目的小白来说,以前一直自我感觉自己知道vue的生命周期, 直到前两天去面试,面试官让我说一下vue的生命周期... 其实我的心中是有那张图的,但是 ...

  8. HDFS的客户端操作

    命令行操作: -help      功能:输出这个命令参数手册 -ls                   功能:显示目录信息 示例: hadoop fs -ls hdfs://hadoop-serv ...

  9. 在winform上内嵌入其它的程序

    这段代码很有意义,用于把一个程序的界面嵌入到我们自己程序的某个指定窗体上. 比如在某个项目里,我需要把基恩士的激光扫描轮廓显示给客户看,但是激光的DLL中并没有这种功能提供. 于是我想先启动激光的官方 ...

  10. 安卓APP动态调试-IDA实用攻略

    0x00 前言 随着智能手机的普及,移动APP已经贯穿到人们生活的各个领域.越来越多的人甚至已经对这些APP应用产生了依赖,包括手机QQ.游戏.导航地图.微博.微信.手机支付等等,尤其2015年春节期 ...