您当前的位置: 首页 >  kafka

顧棟

暂无认证

  • 0浏览

    0关注

    227博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

简述Kafka

顧棟 发布时间:2021-06-20 16:39:10 ,浏览量:0

文章目录
  • 简述Kafka
    • 架构部分
    • 术语解释
      • Producer
      • Topic
      • Partition
      • broker
      • Consumer
      • Consumer Group

简述Kafka 架构部分

Kafka核心组成部分有Producer,Consumer,Broker,Topic,Zookeeper集群。

在这里插入图片描述

一个基本的Kafka体系,包含了若干的Producer,若干的Consumer,若干的Broker,和一个Zookeeper集群。

如下图所示,一个简单的Kafka消息的数据的流向,Producer将消息发送到Broker,Broker负责将受到的消息存储在硬盘中,Consumer从Broker中订阅消费消息。 在这里插入图片描述

术语解释 Producer

生产者即数据的发布者,该角色将消息发布到Kafka的topic中。broker接收到生产者发送的消息后,broker将该消息追加到当前用于追加数据的segment文件中。

生产者发送的消息,存储到一个partition中,生产者也可以指定数据存储的partition。

Topic

kafka中的消息是以Topic为单位进行归类的,这是一个逻辑的概念,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处,物理上不同Topic的消息分开存储。类似于数据库的表名。

Partition

Topic中的数据分割存储在一个或多个partition。每个partition中的数据使用多个segment文件存储。partition中的数据是有序的,不同partition间的数据不保证数据的顺序。如果topic有多个partition,消费数据时就不能保证数据的顺序。在需要严格保证消息的消费顺序的场景下,需要将partition数目设为1。

每个topic至少有一个partition。

每个分区只能被一个消费组的一个消费者消费。

Leader

每个partition有多个副本,其中有且仅有一个作为Leader,读写消息只能通过Leader的partition。

Follower

Follower跟随Leader,所有写请求都通过Leader路由,数据变更会广播给所有Follower,Follower与Leader保持数据同步。如果Leader失效,则从Follower中选举出一个新的Leader。当Follower与Leader挂掉、卡住或者同步太慢,leader会把这个follower从“in sync replicas”(ISR)列表中删除,重新创建一个Follower。

broker

Kafka 集群包含一个或多个服务器,服务器节点称为broker。

broker存储topic的数据。如果某topic有N个partition,集群有N个broker,那么每个broker存储该topic的一个partition。如果某topic有N个partition,集群有(N+M)个broker,那么其中有N个broker存储该topic的一个partition,剩下的M个broker不存储该topic的partition数据。如果某topic有N个partition,集群中broker数目少于N个,那么一个broker存储该topic的一个或多个partition。在实际生产环境中,尽量避免这种情况的发生,这种情况容易导致Kafka集群数据不均衡。

Consumer

消费者可以从broker中读取数据。消费者负责订阅Topic,并从订阅的Topic上获取消息,消费者可以订阅消费多个topic中的数据。

Consumer Group

每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。

关注
打赏
1663402667
查看更多评论
立即登录/注册

微信扫码登录

0.0361s