• kafka的架构分析


    整体架构组件

              

      broker

              kafka集群中每个节点都会运行一个kafka进程,这个进程被称为kafka的broker

              broker是会参与leader分区的选举的程序

              每个broker一定是某个分区的leader同时还会充当另外一个分区的follower

       分区

             每一个分区都有自己的副本

             每个分区和分区的副本一定不会同时分配到同一台主机上

             kafka会把一个Topic下的数据分散的存储在多个独立的分区文件中

       副本因子

             指定一个分区文件在kafka集群中有多少个备份副本数量

       Topic

              在kafka中是以Topic的形式来管理kafka中的消息数据

              Topic是一个逻辑队列,不是一个物理存在的物体,它是由多个物理的分区队列组合而成

       消息

             一则消息是由key,value,时间三部分组成

       消息存储

              生产者发送消息的时候指定的是Topic,但是消息具体需要存储在Topic下的哪个分区
              kafka的默认分发策略是由hash(key)%分区数的值 来决定的
                 1.可以使相同key的消息可以存储在同一个分区中
                 2.可以使消息均匀的分散在各个分区当中

             

          分区恢复

               当主分区节点宕机的时候,此分区便不能再正常写入消息.kafka会在其它副本分区所在的broker进行重新选举,给宕机的分区重新选举一个新的leader.这样该分区便可以重新读写消息

    数据生产

        

        

        1.每个Topic下包含一组分区数据

        2.每个分区下的数据是有序而且不可变的队列存储模式

        3.每个分区下的数据会在磁盘上保存一段时间再自动删除,不管数据有没有被消费到.消息数据具有持久性

        

    数据消费

           同一个消费组内的消费者只能均分同一topic下的分区
           一个分区分配给了一个消费组内的某个消费者,这个分区就一定不会再对应这个组内的其它消费者。除非这个消费者发生了宕机,这个时候kafka会对这个消费组中的消费者和分区重新进行一次均分

          

          

     Topic运维管理   

    创建topic
    ./kafka-topics.sh --bootstrap-server 192.168.227.152:9092 --create --topic topic01 --partitions 3 --replication-factor 1
    --replication-factor 副本因子的参数值不能够超过broker的数量
    每个broker占用一个kafka实例节点
    表示每个分区数据存储的副本数
    
    查看topic
     ./kafka-topics.sh --bootstrap-server 192.168.227.152:9092 --list
     ./kafka-topics.sh --bootstrap-server 192.168.227.152:9092 --describe --topic topic01
    
    修改topic
    ./kafka-topics.sh --bootstrap-server 192.168.227.152:9092 --alter --topic topic01 --partitions 4
    
    删除topic
    ./kafka-topics.sh --bootstrap-server 192.168.227.152:9092 --delete --topic topic01
    
    
    创建生产者
    ./kafka-console-producer.sh  --broker-list 192.168.227.152:9092 --topic topic01
    
    
    创建消费者
    ./kafka-console-consumer.sh  --broker-list 192.168.227.152:9092 --topic topic01
    topic管理
  • 相关阅读:
    电感
    电容
    电阻
    函数异常规格说明
    异常处理深度解析
    自定义内存管理
    单例类模板
    数组类模板
    数组类模板
    类模板深度剖析
  • 原文地址:https://www.cnblogs.com/yxh168/p/15575527.html
Copyright © 2020-2023  润新知