大数据-53 Kafka 基本架构焦点概念 Producer Consumer Broker Topic Partit ...

打印 上一主题 下一主题

主题 565|帖子 565|积分 1695

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:



  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka (正在更新…)
章节内容

上节我们完成的内容:


  • 生产斲丧结构
  • Kafka 基本概念介绍
  • Kafka 斲丧模式
  • Kafka 焦点API 介绍
  • Kafka 上风
  • Kafka 基本架构

焦点概念

Producer

生产者创建消息。
该角色将消息发布到Kafka的Topic中,Broker吸收到生产者的消息之后,Broker将消息追加到当前的 segment 文件中。
一样平常情况下,一个消息会被发布到一个特定的主题上:


  • 默认情况下通过轮询把消息均衡的发布到主题的全部分区上
  • 在某些情况下,生产者会把消息直接写到指定的分区,这通常是通过消息键和分区器来实现的,分区器为键的一个散列值,并将其映射到指定的分区上。这样可以保证同一个键的消息会被写到同一个分区上。
  • 生产者也可以利用自定义分区器,根据不同的业务规则将消息映射到分区。
Consumer

斲丧者读取消息


  • 斲丧者订阅一个或者多个主题,并按照消息天生顺序读取它们
  • 斲丧者通过检查消息偏移量来区分已经读过的消息,偏移量是另一种元数据,它是一个不绝递增的整数值,在创建消息时,Kafka会把它添加到消息里。在给定的分区里,每个消息的偏移量都是唯一的。斲丧者把每个分区末了读取的消息偏移量生存在ZooKeeper或Kafka上。
  • 斲丧者是斲丧组的一部分,群组保证每个分区只能被同一个斲丧者利用。
  • 如果一个斲丧者失效,斲丧组里的其他斲丧者可以接受失效斲丧者的工作,再平衡,分区重新斲丧。

Broker

一个独立的Kafka服务器称为Broker


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

Topic

每条发布到Kafka集群的消息都有一个种别,这个种别被称为Topic。
物理上不同的Topic的消息分开存储
主题就比如数据库的表,尤其是分库分表之后的逻辑表。
Partition



  • 主题可以被分为若干个分区,一个分区就是一个提交日志
  • 消息以追加的方式写入分区,然后以先入先出的顺序读取
  • 无法在整个主题范围内保证消息的有序,但可以保证消息在单个分区内的顺序
  • Kafka通太过区来实现数据冗余和伸缩性
  • 在需要严酷保证消息的顺序的场景下,需要将Partition数目设置为1

Replicas

Kafka利用主题来组织数据,每个主题被分为若干个分区,每个分区有多个副本,那些副本被生存在Broker上,每个Broker可以生存成百上千属于不同主题和分区的副本。
副本有以下的两种范例:


  • 首领副本:每个分区都有一个首领副本,为了保证一致性,全部生产者哀求和斲丧者哀求都会颠末这个副本。
  • 跟随者副本:首领以外的副本都是跟随副本,跟随者副本不处理处罚来自客户端的哀求,它们唯一的任务就是从首领那里复制消息,保持与首领一致的状态。如果首领发生奔溃,其中一个跟随者就会被提升为新首领。
Offset

生产者

消息写入的时候,每一个分区都有一个Offset,这个Offset就是生产者的Offset,同时也是这个分区的最新最大的Offset。
有些时候没有指定某一个分区的Offset,这个工作Kafka帮我们完成。

斲丧者

这是某个分区的Offset情况,生产者写入的Offset是最新最大值12,当ConsumerA进行斲丧时,从0开始斲丧,不绝斲丧到9,斲丧者的Offset就纪录9,ConsumerB就纪录在11。
等下一次斲丧的时候,他们可以选择从上一次斲丧的位置斲丧,也可以从头开始斲丧。

副本

Kafka通过副原来保证高可用,副天职为:首领副本(Leader)和跟随者副本(Follower)。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

郭卫东

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表