• Kafka常用命令和核心概念


    1.命令

    启动:

    zookeeper:
    bin/zkServer.sh start
    kafka:
    bin/kafka-server-start.sh -daemon config/server.properties
    

    查看topic:

    bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
    

    查看消费者组:

    bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
    

    创建topic:

    bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --replication-factor 1 --partitions 1 --topic xxx
    

    启动生产者:

    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic xxx
    

    启动消费者:

    bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic xxx --from-beginning
    

    2.核心概念

    1.Broker

    集群中的一个实例,多个broker中有一个是leader,其他都是follower

    2.Consumer Group

    同一个group的consumer可以并行消费同一个topic的消息,但是不会重复消费(相当于多个线程去消费,提高了消费速度)

    如果同一个topic需要被多次消费,可以设多个consumer group来实现,分别消费互不影响

    3.Topic

    特定主题,区别不同消息的类型,消息以主题为单位进行归类

    4.Partition

    Kafka采用分区方式让消费者并行消费,提高吞吐能力,每个分区有多个副本保证高可用

    一个分区只能被同组的一个consumer消费,但是一个consumer可以消费多个分区

    消费效率最高的情况是分区数和consumer数量相同,每个consumer消费一个分区

    当consumer数量大于分区数的时候,就会有consumer闲置

    5.Replication

    副本存在leader和follower之分,活跃的称为leader,其他的是follower

    每个分区都有多个副本,只有一个是leader,其他是follower

    消息进来先存入leader,然后从leader复制到follower,只有复制全部完成,consumer才可以消费此条消息,消费也是从leader读取

    由于leader做了大量工作,如果不同分区的leader replication在集群的broker上分布不均匀,就会造成负载不均衡

    Kafka通过轮询算法保证leader均匀分布

    副本均匀分布在broker上,同一个分区的副本不会在同一个broker上

    同一个分区的副本数不能多于broker数量,没有意义

    6.分区平衡

    AR:assigned replication 已分配副本,每个分区都有自己的AR列表,里面存储这个分区最初分配的所有副本,AR列表不会变化,除非增加分区

    PR:优先副本,AR列表中的第一个副本就是优先副本,而且永远是优先副本,最初的时候优先副本和leader副本是同一个

    ISR:in sync replication 同步副本,每个分区有自己的ISR列表,会根据同步情况动态变化

    最初ISR和AR列表一致,如果某个节点挂掉,或者某个节点的follower副本落后leader副本太多,就会被从ISR列表移除,此时ISR和AR就不再一致

    同步滞后过多的副本组成OSR Out-of-Sync Replicas

    分区平衡操作其实就是让leader副本和优先副本保持一致的操作

    7.分区读写

    每个分区都是有序不可变的

    Kafka只能保证分区的消费顺序,不能保证topic消费顺序

    consumer可以重置offset到之前的位置,可以以任何顺序消费,不一定线性后移

    8.Producer

    消息生产者,向broker发送消息

    9.Consumer

    消费者,从broker拉取消息

  • 相关阅读:
    day02-xml
    day01-java重点复习
    RPM包和YUM仓库管理
    Nginx的下载与安装
    yum源本地部署完后网络部署报错
    RAID和LVM
    磁盘管理
    xargs详解
    locate及find查找命令
    linux的进程和管道符(二)
  • 原文地址:https://www.cnblogs.com/jordan95225/p/13825329.html
Copyright © 2020-2023  润新知