zoukankan      html  css  js  c++  java
  • 小记--------kafka高效读写数据、kafka高效读写及zookeeper在kafka中的作用

    kafka高效读写数据
    1.顺序写磁盘
        kakfa的producer生产数据,要写入log文件中,写的过程是一直追加到文件末端为顺序写,顺序写能达到600M/s。而随机写只有100K/s,顺序写之所以快,是因为其省去了大量磁头寻址时间
     
    2.零复制技术
        正常操作将一个目录下的文件移动到另一个目录下, 首先通过系统空间读取到文件,在传输到用户空间(也就是我们的代码层面),在写入到系统空间,最后移动到另一个目录下。
        而kafka架构是直接跳过用户空间,在系统空间进行操作。因此高效的读写效率
     
    Zookeeper在kafka中的作用
        kafka集群中有一个broker会被选举为Controller,负责管理集群broker的上下线,所有topic的分区副本分配和leader选举(争抢资源,哪个broker抢到,就会被选举为Controller)等工作。
        Controller的管理工作都是依赖于Zookeeper。Controller的作用就是在Zookeeper中写消息,其他作用与普通的broker是一样的。
     
    Kafka事务
        kafka事务可以保证kafka在Exactly Once语义的基础上,生产和消费可以跨分区和回话,要么全部成功,要么全部失败
     
    producer事务
        为了实现跨分区跨会话的事务,需要引入一个全局唯一的TransactionID,并将Producer获得的PID和TransactionID绑定,这样当Producer重启后就可以通过正在进行的TransactionID获得原来的PID,
        为了管理Transaction, kafka引入一个新的组件Transaction Coordinator,Producer就是通过和Transaction Coordinator交互获得TransactionID对应的任务状态,Transaction Coordinator还负责将事务所有写入kafka的一个内部Topic,这样即使整个服务重启,由于事务状态得到保存,进行中的事务状态可以得到回复,从而继续进行。
     
  • 相关阅读:
    无题
    Tomcat如何配置环境变量
    linux 下 jdk+tomcat+mysql 的 jsp 环境搭建
    when you're gone
    sublime text3插件篇
    java如何从cmd运行并使用text文件作为输入源的总结
    在发送intent启动activity之前判断是否有activity接收
    contentvalue的探究(结构,用途)
    JAVA input/output 流层次关系图
    activity状态保存的bundl对象存放位置的思考
  • 原文地址:https://www.cnblogs.com/yzqyxq/p/12846933.html
Copyright © 2011-2022 走看看