ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

kafka 学习笔记1

2021-12-01 22:32:49  阅读:199  来源: 互联网

标签:topic ISR partition broker 笔记 kafka 学习 follower leader


Event streaming is the digital equivalent of the human body’s central nervous system

概述

分布式基于发布/订阅模式的消息队列,应用于大数据实时处理领域。
1 6 3005

应用

  1. 异步处理

两种模式

  1. 点对点 消费者主动拉取消息
  2. 发布订阅 一对多 消费者消费数据后不会清除消息

结构

在这里插入图片描述

  1. broker 主题 消息队列分区 ,一台 kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个 broker,可以容纳多个 topic。
  2. Topic 逻辑:可以理解为一个队列,生产者和消费者面向的都是一个 topic;
  3. Partition物理分区:为了实现扩展性,一个非常大的 topic 可以分布到多个 broker(即服务器)上,一个 topic 可以分为多个 partition,每个 partition 是一个有序的队列
  4. follower 副本 leader主要 生产者消费者只找leader
  5. consumer group 消费者组 某一个分区只能被同一个消费者组里的消费者消费
  6. zookeeper 如果kafka要集群要用一套zk

分片和索引机制

生产者生产的信息不断增加在log文件末尾,为防止log文件过大导致数据定位效率低下。

segment

每个partition分为多个segment,每个segment对应两个文件.index索引和.log数据
在这里插入图片描述

文件夹命名规则

topic名称+分区序号

分区的原因

  1. 方便集群中扩展
  2. 可以提高并发 为p为单位读写

分区原则

将producer发送的数据封装成一个ProducerRecord对象

  1. 指明 partition 的情况下,直接将指明的值直接作为 partiton 值;
  2. 没有指明 partition 值但有 key 的情况下,将 key 的 hash 值与 topic 的 partition
    数进行取余得到 partition 值;
  3. 既没有 partition 值又没有 key 值的情况下,第一次调用时随机生成一个整数(后
    面每次调用在这个整数上自增),将这个值与 topic 可用的 partition 总数取余得到 partition
    值,也就是常说的 round-robin 算法

可靠性保证

每次p收到producer发送的数据后,想producer发送ack,则进行下一轮发送否则重新发送

副本同步策略

在这里插入图片描述
使用第二种并优化方案。ISR

同步副本 ISR

Leader 维护了一个动态的 in-sync replica set (ISR),意为和 leader 保持同步的 follower 集
合。当 ISR 中的 follower 完成数据的同步之后,leader 就会给 follower 发送 ack。如果follower
长时间 未 向 leader 同 步 数 据 , 则 该 follower 将 被 踢 出 ISR , 该 时 间 阈 值
replica.lag.time.max.ms 参数设定。Leader 发生故障之后,就会从 ISR 中选举新的 leader。

p15

问题

zap协议

标签:topic,ISR,partition,broker,笔记,kafka,学习,follower,leader
来源: https://blog.csdn.net/qq_43432797/article/details/121665788

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有