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模型,
    但由于其系统局限性,并没有广泛应用。
    
  • 相关阅读:
    固态硬盘和机械硬盘的比较和SQLSERVER在两种硬盘上的性能差异
    带您理解SQLSERVER是如何执行一个查询的
    SQL Server 2000中的并行处理和执行计划中的位图运算符
    SQL2005解密已经被加密的存储过程
    使用SQLServer 2008的CDC功能实现数据变更捕获
    like语句百分号前置会使用到索引吗?
    再说一下表分区
    SQLSERVER中的元数据锁
    验证非法电话号码
    OpenCV 2.2版本号以上显示图片到 MFC 的 Picture Control 控件中
  • 原文地址:https://www.cnblogs.com/snail-gao/p/12924390.html
Copyright © 2011-2022 走看看