Kafka架构

在这里插入图片描述

  • broker:
    一台Kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。
    一个Kafka的集群通常由多个broker组成,这样才能实现负载均衡、以及容错
    broker是无状态的,它们通过Zookeeper来维护集群状态
    一个Kafka的broker每秒可以处理十万次读写,每个broker都可以处理TB消息而不影响性能
  • Zookeeper:
    Zookeeper用来管理和协调broker,并且存储了Kafka的元数据(例如:有多少topic,partition,consumer)
    Zookeeper服务主要用于通知生产者和消费者集群中有新的broker加入,或者有故障的broker。
  • producer(生产者):
    生产者负责将数据推送给broker的topic
  • consumer(消费者):
    消费者负责从broker的topic中拉取数据,并进行处理。
  • consumer group(消费者组):
    consumer group是Kafka提供可扩展且具有容错性的消费者机制
    一个消费者组可以包含多个消费者
    消费者组内每个消费者负责不同分区的数据,一个分区只能由一个组内消费者消费
    消费者组内之前互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
  • topic:
    可以理解为一个队列,生产者和消费者面向的都是一个topic。
    主题是一个逻辑概念,用于生产者发布数据,消费者消费数据。
    Kafka中的主题必须要有标识符,而且是唯一的,Kafka中可以有任意数量的主题,没有数量上的限制。
    在主题中的消息是有结构的,一般一个主题包含一类信息。
    一旦生产者发送消息到主题中,这些消息就不能被更改。
  • Partioion:
    为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列。
  • Replica:副本:
    一个topic的每一个分区都有若干副本,一个Leader和若干个Follower。
    副本可以确保服务器出现故障时,确保数据依然可用。
    再Kafka中,一般都会设计副本个数>1。
  • Leader:
    生产者发送数据的对象,以及消费者消费数据的对象都是Leader
  • Follower:实时从Leader中同步数据,保持个Leader数据同步,Leader发生故障时,某个Follower会成为新的Leader。
  • offset偏移量:
    offset记录者下一条将要发送给Consumer的消息的序号
    0.9版本之前,consumer默认将offset保存在Zookeeper中;0.9版本之后,consumer默认将offset保存在kafka一个内置的topic中,该topic为_consumer_offsets.
    在一个分区中,消息顺序存储,每一个分区的消费都有一个递增的id,这个就是偏移量offset。
    偏移量在分区中才是有意义的,在分区之前offset没有意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值