Kafka

KAFKA

kafka集群

  • broker

    • kafka集群运行后,每台服务器上的kafka称为一个broker节点

    • 处理消费者和生成者的请求

      • 生产者需要保存数据到kafka,就需要请求broker
      • 消费者需要从kafka中获取数据,也需要请求broker
    • 多个broker会选取产生一个控制器, 类似zk中 leader角色

      • 管理broker,监控broker的变化
      • 参与分区副本的领导者选举
      • 处理消费者和生成者的请求
      • 有zk从broker中选举出控制器
        • 本质哪台服务器先启动了kafka,生成了broker节点,该节点就作为控制器
  • 主题 Topic

    • kakfa是对消息数据的处理
    • 消息数据会有不同的分类 用户数据 商品数据 订单数据
    • 使用主题对消息数据进行分类,然后分别存储
    • 主题创建成功后,会将主题信息写入zk中,所有的broker就可以从zk获取有哪些主题
    • 生产者写入数据是可以指定写入的主题,人为对数据按照主题分类
    • 消费者读取数据是也要指定主题,从对应的主题下获取数据
    • 操作kafka必须现有主题
  • 分区(分片) Partition

    • 分区是kafka存储数据的最小单元,消息数据最终是存储在分区上的
    • 一个主题在存储时可以指定多个分区
    • 当有多个分区时,分区被分配到不同broker上
    • 分区所存储的数据是在系统的磁盘上进行存储。每个分区会创建不同目录,然后将数据写入该目录下的文件中
    • 文件中存储的数据是有有效期,默认的有效期是168小时,也就是一周,超过有效期后,会删除数据
  • 副本 Replication

    • 为了保证分区数据的安全性,避免分区数据丢失,kafka采用副本机制将分区数据存储多份
    • 默认在创建主题时,如果没有指定副本,那么副本的数量为1,也就是只有一个分区只有一份数据
    • 在创建主题时,可以指定多个副本,一般指定副本数量是2-3个
    • 副本数据不会保存在同一台服务器上,会将副本保存在多台服务器,通过轮循broker节点,创建副本
    • 多副本的角色划分
      • 领导者副本
        • broker控制器会选举产生一个领导者副本
        • 领导者副本负责处理所有请求(写入和读取)
        • 生产者写入数据是,会将数据给到领导者副本,领导者副本写完后,会将数据同步给追随者副本
      • 追随者副本
        • 追随者副本 请求领导者本副本获取最新数据,如果领导者副本有新数据产生,会将新数据同步给追随者副本
        • 追随者副本不处理数据的写入和读取请求
  • 偏移量(offset)

    • 分区数据在存储的时候会有一个偏移量,记录了数据在分区中的位置。
    • 保证在同一个分区内的数据是有序存储的,可以保证数据的顺序性,消费在读取数据进行处理就是按照偏移量位置顺序读取数据处理
相关推荐
此时不提桶,更待何时11 小时前
06-23-A-RabbitMQ生态集成详解
分布式·rabbitmq
m0_6464299716 小时前
RabbitMQ 核心知识总结(生产实战版)
分布式·rabbitmq
DBA_G19 小时前
GBase 8c分布式数据库客户端工具 gsql
数据库·分布式
chunyublog19 小时前
Spark 词频统计练习
大数据·分布式·spark
ClouGence20 小时前
开源数据库管理工具 CloudDM 4.4.0 发布,新增 Kafka、SAP HANA 数据源
数据库·kafka
acrel720 小时前
高速公路分布式光伏并网电能质量与安全保护方案应用
分布式·安全
RobinXYuan20 小时前
【Kafka 源码手记】01 从消息队列到 Event Streaming
kafka·源码阅读
IT小小猪1 天前
# Hadoop 3.3.6 完全分布式集群部署知识库
hadoop·分布式·eclipse
此时不提桶,更待何时1 天前
06-24-B-RabbitMQ面试与生产事故实战
分布式·面试·rabbitmq
来福猿1 天前
分布式锁 Redis 实现源码分析:SETNX、过期时间与可重入设计
数据库·redis·分布式