zoukankan      html  css  js  c++  java
  • 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模型,
    但由于其系统局限性,并没有广泛应用。
    
  • 相关阅读:
    使用FolderBrowserDialog组件选择文件夹
    使用OpenFileDialog组件打开多个文
    使用OpenFileDialog组件打开对话框
    获取弹出对话框的相关返回值
    PAT 甲级 1139 First Contact (30 分)
    PAT 甲级 1139 First Contact (30 分)
    PAT 甲级 1138 Postorder Traversal (25 分)
    PAT 甲级 1138 Postorder Traversal (25 分)
    PAT 甲级 1137 Final Grading (25 分)
    PAT 甲级 1137 Final Grading (25 分)
  • 原文地址:https://www.cnblogs.com/snail-gao/p/12924390.html
Copyright © 2011-2022 走看看