zoukankan      html  css  js  c++  java
  • 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重启之后就会从上次提交的消费偏移量位置处继续往下消费,不会重复消费。

  • 相关阅读:
    进程对象的属性或方法详解
    进程理论以及开启子进程的两种方式
    计算机发展史(多道技术)
    基于socketserver实现的并发(tcp和udp)
    基于udp协议的套接字及udp协议粘包问题
    模拟ssh的远程网络传输
    周考题目及答案
    c/s架构搭建
    网络编程基础
    10.16模拟赛(湖南集训)
  • 原文地址:https://www.cnblogs.com/koushr/p/12046717.html
Copyright © 2011-2022 走看看