• kafka-版本变更相关


    从0.11开始记录吧

    和其他中间件相比,kafka版本间差异和特性更显著,已经安装好的版本号也不好查(没有 -version命令可查),

    另外还有个scala版本号,很容易把人搞懵逼

    1、版本命名规则

    以目前我们正在用的这个版本号为例:kafka_2.12-2.2.1,2.12表示scala的版本号,横杠后面的2.2.1才是真正的程序员需要关心的版本号

    1.x之前遵循4位版本号,例如:0.10.0.0,0.11.0.3

    1.x之后全部改成菜场通用的 Major.Minor.Patch 三位版本规则,

    Major表示大版本,通常是一些重大改变,所以功能可能会有部分不兼容;

    Minor表示小版本,通常是一些新功能的增加;

    Patch表示修订版,主要为修复一些重点Bug而发布的版本。

    2、版本差异

    • 0.10.x

    Kafka的一个重要的大版本,引入了 Kafka Streams,定位是除了作为消息引擎外,正式升级成分布式流处理平台,我们没用到

    0.10.2.2 解决了一些重要bug,Consumer API比较稳定,Producer API性能得到提升,是推荐的稳定版本

    • 0.11.x

    是一个里程碑式的大版本,主要有两个大的变更:消息格式变化(重构),producer幂等性和事务API

    事务API主要为kafka-streams服务,没用过;producer幂等性,关注晚了,应该先尝尝鲜,也就是Exactly-Once 语义

    各个组件非常稳定,如果没打算使用streams,这个版本算是目前最主流的,推荐是0.11.0.3

    • 1.x

    主要是Kafka Streams,Connect方面的改进。有两个重磅特性:

    可靠性提升:

    1.0.0实现了磁盘的故障转移,当Broker的某一块磁盘损坏时数据会自动转移到其他正常的磁盘上,Broker还会正常工作,这在之前版本中则会直接导致Broker宕机

    磁盘负载均衡提升:

    1.1.0开始支持副本跨路径迁移,分区副本可以在同一Broker不同磁盘目录间进行移动,对磁盘的负载均衡非常有意义

    • 2.x

    Streams、Connect方面的性能提升与功能完善,以及安全方面的增强,一个重要特性:

    2.1.0开始支持ZStandard的压缩方式,提升了消息的压缩比,显著减少了磁盘空间与网络io消耗

    推荐是2.2.1

    后记

    推荐版本,不需要streams功能,只做消息引擎,0.10.2.2 ,0.11.0.3即可;否则直接用2.2.1吧

    客户端和服务端版本要一致,一般没人使用scala API,那pom中引入时artifactId就用kafka-clients足够了,因为不了解这个,之前跨部门消费别个的KAFKA集群踩过坑

    结果发现我的是0.10,别人的服务端是0.11

    版本间kafka自身集群提升的特性可能没法关系到程序员编码,但是得有大概的印象,避免排查问题时完全是闭眼玩家

  • 相关阅读:
    PHP5.5新特性
    并发导论【转】
    Redis常用数据结构和操作
    git常用命令【转】
    curl 的用法指南
    pycurl模块
    单点登陆
    MySql 里的IFNULL、NULLIF和ISNULL用法
    Mysql coalesce()函数认识和用法
    python文件操作
  • 原文地址:https://www.cnblogs.com/yb38156/p/14609907.html
Copyright © 2020-2023  润新知