• Kafka新旧版本对比


    kafka product新旧对比,新版本的优势

    1.划分到两个不同的线程:用户主线程和Sender I/O线程,逻辑更容易把握。
    2.完全是异步发送消息,并提供回调机制用于判断发送成功与否。
    3.分批次,每批次中包含多个发送请求,提升整体吞吐量。
    4.更加合理的分区策略:对于没有指定key的消息而言,旧版本producer分区政策是默认在一段时间内将消息发送到固定分区,这样容易造成数据倾斜;
    新版本采用轮询的方式,消息发送将更加均匀化。
    5.底层统一使用基于java Selector的网络客户端,结合java的Future实现更加健壮和优雅的生命周期管理。
    

    kafka consumer 新旧版本对比

    1.单线程设计--单个consumer线程可以管理对个分区的消费Socker连接,极大地简化了实现。0.10.1.0版本额外引入一个后台心跳线程,不过双线程设计依然比旧版本consumer的
    多线程设计要简单的多。
    2.位移提交与保存由kafka来处理,不在保存在zookeeper中,而是单独保存在Kafka的一个内部topic中,避免了zookeeper频繁读写的性能瓶颈,
    同时也依托Kafka的备份机制天然实现位移的高可用管理。
    3.消费者组的集中式管理,原来由zookeeper来管理位移,还要负责管理整个消费者组成员。新版本改进了设计,实现了一个集中式协调者的角色。现在都交给该角色管理,
    对于group的管理更加可控。
    

    kafka在window和linux的区别

    1.kafka新版本clients在设计底层网络库采用java的Selector机制,而在linux上的实现机制就是epoll;但是在windows平台商,java NIO的Selector
    底层使用select模型而非IOCP实现的,只有javaNIO2才是使用IOCP实现的。因此在linux上部署kafka要比在windows上部署能够得到更高效的I/O处理性能。
    2.linux网络传输优势。底层采用sendfile系统调用,即linux提供的零拷贝技术。windows提供函数TransmitFile来支持零拷贝,在java 8u60版本才
    支持FileChannel的transferTO方法调用该函数。
    3.epoll比select模型高级。epoll取消轮训机制,使用的是回调机制。当底层连接socket较多时,可以避免很多无意义的CPU时间浪费。IOCP模型是异步I/O模型,
    但由于其系统局限性,并没有广泛应用。
    
  • 相关阅读:
    【Flutter学习】页面布局之基础布局组件
    【Flutter学习】基本组件之AppBar顶部导航栏
    【Flutter学习】基本组件之BottomNavigationBar底部导航栏
    开发日记:JsonCSharpHelp
    会议抢订
    C# WinForm 技巧十: winfrom 全屏自适应屏幕分辨率
    阿里云 轻量应用服务器(LAMP) 使用日志记录
    常见模块设计--权限管理(auth)
    PHP获取项目所有控制器方法名称
    想要开发自己的PHP框架需要那些知识储备?
  • 原文地址:https://www.cnblogs.com/snail-gao/p/12924390.html
Copyright © 2020-2023  润新知