kafka-0.8.2 新特性
  producer不再区分同步(sync)和异步方式(async),所有的请求以异步方式发送,这样提升了客户端效率。producer请求会返回一个应答对象,包括偏移量或者错误信。这种异步方地批量的发送消息到kafka broker节点,因而可以减少server端资源的开销。新的producer和所有的服务器网络通信都是异步地,在ack=-1模式下需要等待所有的replica副本完成复制时,可以大幅减少等待时间。
  在0.8.2之前,kafka删除topic的功能存在bug。
  在0.8.2之前,comsumer定期提交已经消费的kafka消息的offset位置到zookeeper中保存。对zookeeper而言,每次写操作代价是很昂贵的,而且zookeeper集群是不能扩展写能力的。在0.8.2开始,可以把comsumer提交的offset记录在compacted topic(__comsumer_offsets)中,该topic设置最高级别的持久化保证,即ack=-1。__consumer_offsets由一个三元组< comsumer group, topic, partiotion> 组成的key和offset值组成,在内存也维持一个最新的视图view,所以读取很快。
  kafka可以频繁的对offset做检查点checkpoint,即使每消费一条消息提交一次offset。
  在0.8.1中,已经实验性的加入这个功能,0.8.2中可以广泛使用。auto rebalancing的功能主要解决broker节点重启后,leader partition在broker节点上分布不均匀,比如会导致部分节点网卡流量过高,负载比其他节点高出很多。auto rebalancing主要配置如下,
controlled.shutdown.enable ,是否在在关闭broker时主动迁移leader partition。基本思想是每次kafka接收到关闭broker进程请求时,主动把leader partition迁移到其存活节点上,即follow replica提升为新的leader partition。如果没有开启这个参数,集群等到replica会话超时,controller节点才会重现选择新的leader partition,这些leader partition在这段时间内也不可读写。如果集群非常大或者partition 很多,partition不可用的时间将会比较长。
  1)可以关闭unclean leader election,也就是不在ISR(IN-Sync Replica)列表中的replica,不会被提升为新的leader partition。unclean.leader.election=false时,kafka集群的持久化力大于可用性,如果ISR中没有其它的replica,会导致这个partition不能读写。
  2)设置min.isr(默认值1)和 producer使用ack=-1,提高数据写入的持久性。当producer设置了ack=-1,如果broker发现ISR中的replica个数小于min.isr的值,broker将会拒绝producer的写入请求。max.connections.per.ip限制每个客户端ip发起的连接数,避免broker节点文件句柄被耗光。

kafka-0.9 新特性
一、安全特性
  在0.9之前,Kafka安全方面的考虑几乎为0,在进行外网传输时,只好通过Linux的防火墙、或其他网络安全方面进行配置。相信这一点,让很多用户在考虑使用Kafka进行外网消息交互时有些担心。
  客户端连接borker使用SSL或SASL进行验证
  borker连接ZooKeeper进行权限管理
  数据传输进行加密(需要考虑性能方面的影响)
  客户端读、写操作可以进行授权管理
  可以对外部的可插拔模块的进行授权管理
  当然,安全配置方面是可选的,可以混合使用。如:做过安全配置的的borkers和没有进行安全配置的borkers放在同一集群,授权的客户端和没有授权的客户端,也可以在同一个集群等等。具体配置详见官方文档。
二、Kafka Connect
  这个功能模块,也是之前版本没有的。可以从名称看出,它可以和外部系统、数据集建立一个数据流的连接,实现数据的输入、输出。有以下特性:
  使用了一个通用的框架,可以在这个框架上非常方面的开发、管理Kafka Connect接口
  支持分布式模式或单机模式进行运行
  支持REST接口,可以通过REST API提交、管理 Kafka Connect集群
  offset自动管理
  同时,官方文档中,也给出了例子。通过配置,往一个文本文件中输入数据,数据可以实时的传输到Topic中。在进行数据流或者批量传输时,是一个可选的解决方案。
三、新的Comsumer API
  新的Comsumer API不再有high-level、low-level之分了,而是自己维护offset。这样做的好处是避免应用出现异常时,数据未消费成功,但Position已经提交,导致消息未消费的情况发生。通过查看API,新的Comsumer API有以下功能:
  Kafka可以自行维护Offset、消费者的Position。也可以开发者自己来维护Offset,实现相关的业务需求。
  消费时,可以只消费指定的Partitions
  可以使用外部存储记录Offset,如数据库之类的。
  自行控制Consumer消费消息的位置。
  可以使用多线程进行消费

kafka-0.10 新特性
  Kafka已经内置了机架感知以便隔离副本,这使得Kafka保证副本可以跨越到多个机架或者是可用区域,显著提高了Kafka的弹性和可用性。这个功能是由Netflix提供的
  所有Kafka中的消息都包含了时间戳字段,这个时间就是这条消息产生的时间。这使得Kafka Streams能够处理基于事件时间的流处理;而且那些通过时间寻找消息以及那些基于事件时间戳的垃圾回收特性能为可能。
  Apache Kafka 0.9.0.0版本引入了新的安全特性,包括通过SASL支持Kerberos。Apache Kafka 0.10.0.0现在支持更多的SASL特性,包括外部授权服务器,在一台服务器上支持多种类型的SASL认证以及其他的改进。
  Kafka Connect得到了持续提升。在此之前,用户需要监控日志以便看到各个connectors以及他们task的状态,现在Kafka已经支持了获取的状态API这样使得监控变得更简单。同时也添加了控制相关的API,这使得用户可以在进行维护的时候停止一个connector;或者手动地重启那些失败的task。这些能够直观的在用户界面展示和管理connector目前可以在控制中心(Control Center)看到。
  Kafka Consumer Max Records,在Kafka 0.9.0.0,开发者们在新consumer上使用poll()函数的时候是几乎无法控制返回消息的条数。不过值得高兴的是,此版本的Kafka引入了max.poll.records参数,允许开发者控制返回消息的条数。
  协议版本改进,Kafka brokers现在支持返回所有支持的协议版本的请求API,这个特点的好处就是以后将允许一个客户端支持多个broker版本。

原文和作者一起讨论:http://www.cnblogs.com/intsmaze/p/6709297.html

微信:intsmaze

kafka各个版本特性预览介绍的更多相关文章

  1. kafka0.8--0.11各个版本特性预览介绍

    kafka-0.8.2 新特性 producer不再区分同步(sync)和异步方式(async),所有的请求以异步方式发送,这样提升了客户端效率.producer请求会返回一个应答对象,包括偏移量或者 ...

  2. C# 9.0 新特性预览 - 类型推导的 new

    C# 9.0 新特性预览 - 类型推导的 new 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大 ...

  3. C# 9.0 新特性预览 - 空参数校验

    C# 9.0 新特性预览 - 空参数校验 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它 ...

  4. C# 9.0 新特性预览 - 顶级语句

    C# 9.0 新特性预览 - 顶级语句 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它们 ...

  5. C# 9.0 新特性预览 - init-only 属性

    C# 9.0 新特性预览 - init-only 属性 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章 ...

  6. 解决微信官方SDK给出1.4.0等版本没有预览文件(previewFile)等接口

    使用苹果手机测试 调用微信的js-sdk在系统中实现上传.预览附件的功能.在自己的手机测试通过后,直接丢给QA测试了 本以为相安无事了,没想到QA用安卓手机测的时候居然不得,使用的是下载下来的jwei ...

  7. Windows Phone 8.1SDK新特性预览

    前言    Windows Phone 8.1的预览版将在近期推送,WP 8.1的SDK也已经进入到RC阶段,可以从这里安装.本次更新的SDK被直接集成到了VS2013Update2里面,不再是单独的 ...

  8. avalon1.3的新特性预览

    avalon1.2的性能优化风暴很快就告一段落,入职也快一个月了,许多乱七八糟的事也少了下来,估计未来一个月会有许多好东呈现给大家. 首先是一个性能检测工具.由于MVVM是将原本由人脑干的事,转到各种 ...

  9. 特性预览:Apache 顶级项目 Apache Pulsar 2.6.1 版本

    在正式分享 2.6.1 版本更新细节之前,冉小龙首先为我们分享了两个相关 PIP 的内容. 一个是 PIP-47 中关于「基于时间来进行版本更新」的计划.该 PIP 提出后,从 2.5.0 版本到目前 ...

随机推荐

  1. ERP项目案例:澳科利辊业科技有限公司

    企业简介: 上海澳科利公司成立于1995年,在主要股东LASERLIFE的支持下,创始人归霆先生带领他的精英团队--一支陶瓷网纹辊专业制造队伍和资深专业的柔版印刷服务机构,致力于发展中国包装印刷业,服 ...

  2. H5移动端开发入门知识以及CSS的单位汇总与用法

    说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...

  3. Django之Session

    Django  -- Seeion介绍 问:       Django的session是什么? 答:       Django 完全支持匿名 Session的. Session 框架允许每一个用户保存 ...

  4. 最近新版本的pangolin出现了点问题,我把可用的旧版本上传到了github

    经测试该版本编译没有问题. 下载地址:https://github.com/zzx2GH/Pangolin.git

  5. 多线程爬坑之路--并发,并行,synchonrized同步的用法

    一.多线程的并发与并行: 并发:多个线程同时都处在运行中的状态.线程之间相互干扰,存在竞争,(CPU,缓冲区),每个线程轮流使用CPU,当一个线程占有CPU时,其他线程处于挂起状态,各线程断续推进. ...

  6. Oracle 重建控制文件

    前些天在做Oracle数据库恢复测试时,因为一些异常操作导致控制文件出了问题,数据库无法正常使用,这里记录一下重建控制文件的操作 一.使用sysdba用户登入数据库 此时普通用户已无法链接数据库 二. ...

  7. Android--多线程之Handler 前言

    前言 Android的消息传递机制是另外一种形式的“事件处理”,这种机制主要是为了解决Android应用中多线程的问题,在Android中不 允许Activity新启动的线程访问该Activity里的 ...

  8. Linux下随机生成密码的命令总结

    有时候经常为如何设置一个安全.符合密码复杂度的密码而绞尽脑汁,说实话,这实在是一个体力活而且浪费时间,更重要的是设置密码的时候经常纠结.终于有一天实在忍不住了,于是学习.整理了一下如何使用Linux下 ...

  9. 用Jquery做一个时间日期选择器

    今天我们就用Jquery做一个时间日期选择器,当打开网页时,文本框里面显示的是当前的日期,点击文本框可以出现年.月.日的下拉菜单,并且可以选择,会根据年份的选择判断是否是闰年,从而改变二月的天数,闰年 ...

  10. hdoj1016 [dfs]

    http://acm.hdu.edu.cn/showproblem.php?pid=1016 题意: 已知一个数n,在1-n(包含 n ,0 < n < 20)里组合形成一个环形,使得每两 ...