kafka各个版本特点介绍和总结
kafka各个版本特点介绍和总结
1.1 kafka的功能特点:
分布式消息队列
消息队列的数据模型, 形成流式数据。
提供Pub/Sub方式的海量消息处理。以高容错的方式存储海量数据流。保证数据流的顺序。
消费者:一份消息可多个消费者都处理,也可以只由一个消费者处理
线性扩展,高可用
分布式系统,易于向外扩展。所有的producer、broker和consumer都会有多个,均为分布式的。无需停机即可扩展机器。
动态的增加一个topic的partition文件数量,就可以线性扩展一个topic的处理能力。
以高容错的方式存储海量数据流。
每个topic包含多个partition,partiton又有多个副本,均匀的分布在多个机器上。
高吞吐量:生成和消费速度非常快
1. kafka server 生成日志的速度可以接近磁盘的只写速度(几十兆 ~ 百兆)。
kafka的实现思想是文件直写(直接使用linux 文件系统的cache)的commit log. 速度非常的快.
如果消息大小为百字节级别的话,那么也就是说单机写入可以达到几十W/S。
2. 磁盘顺序读写
3. 采用linux Zero-Copy提高消息发送到consumer的性能。减少IO操作步骤;可以提高60%的数据发送性能。
1.2 kafka的使用场景:
kafka的使用场景,即kafka的用途。
- 数据总线(数据管道)

Kafka主要用途是数据集成,或者说是流数据集成,以Pub/Sub形式的消息总线形式提供。Kafka可以让合适的数据以合适的形式出现在合适的地方。
1. 降低系统组网复杂度。
2. 降低编程复杂度,各个子系统不在是相互协商接口,各个子系统类似插口插在插座上,Kafka承担高速数据总线的作用。
日志收集,用户行为数据,运维监控数据收集,都可以适合该场景。
海量数据 发布/订阅的消息队列
实时计算的流式数据源(storm,spark-streaming)
离线计算的数据源
1. kafka的数据文件作为离线计算的数据源。
2. 消费kafka的数据,存储到离线平台HDFS等。
1.3 kafka的大的版本升级
kafka 从0.7 ,0.8.x, 0.9.x 0.10.0.X ,1.0.0 的主要演进:
1.0.0 ~1.1.0 的重大升级 (2017.11.1)
1. 更好地支持磁盘容错,更优雅地处理磁盘错误.
2. Streams API 在 1.0.0 版本里继续演进.
3. 支持 Java 9
4. 提升了生产者的吞吐量。
5. kafka 第一个正式版。
在0.11.x的重大变化(2017.6.28)
1. kafka Streams 支持 Exactly-Once Semantics
在0.10.x的重大变化(2016.5.22)
1. 从0.10.0.0开始,增加一个新的客户端Kafka Streams客户端API。
用于流式处理存储在kafka topic的数据。这个新客户端仅支持0.10.x或更高的版本。
2. 旧的的Scala的生产者已经弃用。使用者尽快使用最新的Java客户端,新的消费者API已标记为稳定。
3. 消息包含了一个时间戳字段和压缩后消息的关系offset。
5. 新的Java消费者现在允许用户通过分区上的时间戳来搜索offset。
6. 启用了kafka的权限。
7. kafka集群的broker id 支持自动生成了(cluster_id)。
8. kafka broker 的服务协议有增加。
9. 日志保留时间不再基于日志段的最后修改时间。相反,它将基于日志段中消息的最大时间戳。
10.日志滚动时间不再取决于日志段的创建时间。而是基于消息中的时间戳.
影响:
1. 客户端需要升级到0.10.0.0,避免造成,消息格式转换,造成系统负载升高。
2. 由于kafka功能的扩充,消息格式更改,kafka的吞吐性能有稍微的下降。
(如果集群的能力与网络接近,可能会超过网卡,并看到由于过载的故障和性能问题。)
3. 总体上将kafka 0.10.x变的更加稳健,功能也更加完善。
- 0.9.x的重大变化(2015.11.23)
1. Java 1.6不再支持。
2. Scala 2.9不再支持。
3. 变更topic配置管理开始单独处理。
4. 启用新的kafka性能测试工具。
5. broker协议版本升级,升级需要重启服务。
6. 分区的leader和副本的同步机制发生了变化。
7. kafka client的源码包结构有所变化。
8. 日志清理和压缩的机制发生了变化。
9. Kafka Connect这个功能模块
10. 安全特性的第一次加入:客户端连接borker使用SSL或SASL进行验证。
11. Comsumer API不再有high-level、low-level之分。
0.9版本的kafka 由于变化和改动较多,很不稳定,在生产环境中很少使用。
- 从0.8.0升级到0.8.2( 2013,7 ~ 2015.2 )
服务端 最稳定的版本,性能最好;但客户端还不是很完善。
客户端api不兼容以前的版本。
- 从0.7版本( 2012年以前 )
比较老的版本。
kafka各个版本特点介绍和总结的更多相关文章
- flink引出的kafka不同版本的兼容性
参考: 官网协议介绍:http://kafka.apache.org/protocol.html#The_Messages_Fetch kafka协议兼容性 http://www.cnblogs.c ...
- Kafka各个版本差异汇总
Kafka各个版本差异汇总 从0.8.x,0.9.x,0.10.0.x,0.10.1.x,0.10.2.x,0.11.0.x,1.0.x或1.1.x升级到2.0.0 Kafka 2.0.0引入了线 ...
- Kafka设计解析(一)Kafka背景及架构介绍
转载自 技术世界,原文链接 Kafka设计解析(一)- Kafka背景及架构介绍 本文介绍了Kafka的创建背景,设计目标,使用消息系统的优势以及目前流行的消息系统对比.并介绍了Kafka的架构,Pr ...
- Kafka剖析:Kafka背景及架构介绍
<Kafka剖析:Kafka背景及架构介绍> <Kafka设计解析:Kafka High Availability(上)> <Kafka设计解析:Kafka High A ...
- kafka集群原理介绍
目录 kafka集群原理介绍 (一)基础理论 二.配置文件 三.错误处理 kafka集群原理介绍 @(博客文章)[kafka|大数据] 本系统文章共三篇,分别为 1.kafka集群原理介绍了以下几个方 ...
- 软件发布版本区别介绍-Alpha,Beta,RC,Release
Alpha: Alpha是内部测试版,一般不向外部发布,会有很多Bug.除非你也是测试人员,否则不建议使用. 是希腊字母的第一位,表示最初级的版本 alpha就是α,beta就是β alpha版就是比 ...
- 转载:kafka c接口librdkafka介绍之二:生产者接口
转载:from:http://www.verydemo.com/demo_c92_i210679.html 这个程序虽然我调试过,也分析过,但是没有记录笔记,发现下边这篇文章分析直接透彻,拿来借用,聊 ...
- Nmap原理02 - 版本探测介绍(上)
Nmap原理02 - 版本探测介绍(上) 1.介绍 本文将介绍如何通过修改或添加nmap-service-probes文件来实现对nmap中未知服务的探测,首先介绍服务和版本探测的相关信息,然后介绍服 ...
- kafka各个版本特性预览介绍
kafka-0.8.2 新特性 producer不再区分同步(sync)和异步方式(async),所有的请求以异步方式发送,这样提升了客户端效率.producer请求会返回一个应答对象,包括偏移量或者 ...
随机推荐
- contenteditable设置元素可编辑
需求背景 实现一个输入框,高度可以随着输入文字的增加而自动增高 有placeholder,输入为空时,显示placeholder 我们知道可以将div的contenteditable设置伪true,将 ...
- flask在其他文件中添加路由
应用文件为:app.py from flask import Flask app = Flask(__name__) @app.route("/") def hello(): re ...
- 【51NOD】1006 最长公共子序列Lcs(动态规划)
给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的). 比如两个串为: abcicba abdkscab ab是两个串的子序列,abc也是,abca也是,其中abca是这两个 ...
- 【NIFI】 Apache NiFI 与 SQL 操作
本里需要基础知识:[NIFI] Apache NiFI 安装及简单的使用 查询SQL 1.拖入一个 Processor:ExecuteSQLRecord(执行sql记录) 2.配置,SETTINGS的 ...
- css进阶篇
一.css的属性值 1)字体属性 font-size: 5px; /* 字体大小 */ font-size: 20px/50%/larger /* 字体的大小 */ font-family:'Luci ...
- Java的GUI设计
这里笔者写一些自己做GUI时候的心得,希望可以帮助需要学习的同学,函数的实现和界面设计不在同一个文件中,且涉及参数的传递 一.继承于JFrame 当遇到继承于JFrame的类的时候,可以省去建立对 ...
- 2018.12.05 codeforces 948C. Producing Snow(堆)
传送门 维护一个堆. 每次先算出一个都不弹掉的总贡献. 然后把要弹掉的弹掉,并减去它们对应的贡献. 代码: #include<bits/stdc++.h> #define ri regis ...
- 哪些优秀的 Windows 小工具,类似 clover 或 everything
有哪些优秀的 Windows 小工具,类似 clover 或 everything? 目前已知的有everything, listary, total commander, clover, dexpo ...
- excel中vba将excel中数字和图表输出到word中
参考:https://wenku.baidu.com/view/6c60420ecc175527072208af.html 比如将选区变为图片保存到桌面: Sub 将选区转为图片存到桌面() Dim ...
- idea的maven项目不知道为啥下载不下来jar包,看本地仓库只是下载了一下xml文件,没有jar包问题
确认了私服上的jar包能直接下载下来,而且jar包是正常的:但是就是不能通过idea下载,通过idea下载到本地仓库的只生成了.lastUpdated文件,检查了setting.xml文件.网络,私服 ...