• kafka如何保证高可用


    broker:一个kafka集群有多个broker,每个topic都可以有多个分区,每个分区都可以有多个副本。broker数、分区数、副本数随时可以扩容,这是典型的分布式多副本冗余机制。

    通过zookeeper从各broker中选出一个作为controller,controller负责topic分区及其副本在各broker的分布,以及每个分区leader的选出。只有leader会负责客户端的读写,其他follower只会从leader fetch数据保持数据同步。假如一个普通的broker挂了,那么leader在此节点上的分区将会重新从ISR中选出leader。ISR是保持同步的副本集。

    producer:生产者客户端往服务端发送数据时,不是一条条发,而是攒到一定量或是每隔一段时间再发,减少了对服务端的压力。服务端是顺序写盘,且采用了内存映射文件的方式,减少了用户态与内核态的转换,速度比较块。

    consumer:也是由于内存映射文件的方式,消费者客户端从服务端读取数据非常快,还可以控制一次最多从topic poll多少条数据,进一步提速。此外,可以选择自动提交消费偏移量或者在poll之后手动调用commit方法提交偏移量,这样在consumer重启之后就会从上次提交的消费偏移量位置处继续往下消费,不会重复消费。

  • 相关阅读:
    cpio命令
    INI文件格式
    ubuntu死机怎么办
    vim中执行shell命令
    android安装busybox
    putty远程连接ubuntu
    java sdk与jdk区别
    一些使用JSP 编程技巧(转)
    ubuntu12.04 下安装 jdk1.7 maven3.1
    Java Web进阶步骤
  • 原文地址:https://www.cnblogs.com/koushr/p/12046717.html
Copyright © 2020-2023  润新知