kafka-day01 初识kafka

1.介绍:

  • 消息系统:kafka作为一款消息中间件系统,具备有系统解耦,冗余存储,流量控制,缓冲,异步通讯,扩展性及可恢复性等功能;可以保障分区消息的顺序性及回溯消费功能
  • 存储系统:kafka消息持久化到磁盘,较其他内存存储系统而言,有效的降低了数据丢失的风险;kafka提供了多副本机制
  • 流数据处理平台:kafka可作为流式计算框架的可靠数据来源

2. 关键词

  • Producer:
  • Consumer:
  • Broker:
  • Zookeeper
  • Topic
  • Partition - offset
  • Consumer Group
  • Applicas
  • ISR -OSR

3. 基本概念介绍

  • kafka体系架构:包括Producer、Consumer及一个zookeeper集群,其中:zookeeper是kafka用来负责集群元数据的管理、控制器的选举操作;producer是将消息推送到broker;broker负责将收到的消息存储到磁盘中;consumer负责从broker中订阅并消费消息
  • 主题(topic)是一个逻辑概念,它是对消息进行归类;生产者负责将消息发送到指定的topic,消费者订阅主题并进行消费
    • topic可以包含多个分区,同一个topic下的分区的数据是不同的
    • 分区在存储层面可以看做是一个可追加的日志文件,消息在被追加到分区日志文件的时候都会分配一个特定的偏移量(offset)
    • offset是消息在分区中的唯一标识,kafka通过它来保证消息在分区内的顺序性(这里特别注意:分区内有序,而不是主题内有序)
    • kafka的分区分布在不同的broker上,这样比单个broker有更强大的性能
  • 消息的追加写入:
    • 每一条消息在被发送到broker之前,会根据分区规则选择存储到哪个具体的分区
    • 如果分区规则设定得比较合理,则所有的消息会被均匀的分配到不同的分区中;通过扩展topic分区数,可以实现水平扩展
  • Replica副本机制:
    • kafka引入了副本机制,可以提升系统容灾能力;副本处于不同的broker中
    • 副本之间是“一主多从”的关系,其中leader负责处理读写请求,follower副本负责和leader副本消息的同步(注;这里的leader副本的维度是topic-partition,即每个分区都有自己的leader及follower)
    • 当leader副本出现故障时,会从follower副本中重新选举出新的leader副本对外提供服务,实现了故障的自动转义,当及群众某个broker失效时任然可以保证服务的可用
    • 分区中所有的副本统称为Replicas ;所有和leader副本保持一定程度同步 的副本组成Isr(In-sync Replicas)
    • Isr集合是Replicas集合的一个子集; 消息先会发送到leader副本,然后follower副本才能从leader副本中拉取消息进行同步,期间follower副本相对于leader副本而言会有一定程度的滞后;
      • 当follower副本滞后leader副本太多时(可参数配置),leader副本就会将这个Follower副本踢出Isr,即组成Osr(out-sync Replicas)
      • 当leader副本发生故障时,只有在ISR中的副本才有资格选举为新的leader副本(尽量减少损失原则)
      • 在osr列表中的副本,只有追上了leader副本,才能重新进入isr组织
      • leader副本还有一个作用,就是监控follower副本同步数据的情况,及时作出相应的处理
    • HW(High Watermark) 高水位,它标志着一个特定的消息偏移量,消费者只能拉取hw之前的消息
      • 上图代表着一个日志文件,其中有9条消息,第一条消息的offset为0,最后一条消息的offset为8,其中offset=9 (LEO)代表是下一条待写入的消息
      • 日志文件HW为6,则表示消费者只能消费offset=[0,5] 的消息,offset>=6的消息对消费者而言是不可见的
      • LEO(Log End Offset),等于当前分区中的最后一条消息的offset+1;分区Isr中每个副本都会维护自身的LEO,而ISR集合中最小的LEO即为分区的HW
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值