kafka 基础之核心概念

      Broker(server)
          一台Kafka服务器就是一个booker,一个集群由多个broker组成


      Topic(主题)
          topic就是数据主题,Kafka建议根据业务系统将不同的数据存放到不同的topic中,Kafka中的topic总是多订阅者模式,一个topic可以拥有多个消费者来订阅它的数据,一个大的topic可以分布存储在多个Kafka broker中。topic可以类比为数据库中的库。


      Partition(分区)
          每个topic可以有多个分区,通过分区的设计,topic可以不断进行扩展。即一个topic的多个分区分布式存储在多个broker
          此外通过分区还可以让一个topic被多个cinsumer进行消费。以达到并行处理,分区类似于数据库中的表。
          Kafka只保证按一个partition中的顺序将消息发给consuner,不保证一个topic的整体(多个partition间)的顺序。


      Offset (偏移量)
          数据会按照时间顺序被不断的追加到分区的一个结构化的commit log中,每个分区中存储的记录都是有序的,且顺序不可变。
          这个顺序是通过一个称之为offset的id来唯一标识,因此可以认为offset是有序且不可变的
          在每一个消费者端,会唯一保存的元数据是offset(偏移量),即消费在log中的位置,偏移量由消费者所控制,通常在读取记录后,消费者会以线性的方式增加偏移量,但是实际上,由于这个位置由消费者所控制,所以消费者可以采用任何顺序来消费记录。(例如,一个消费者可以重置到一个旧的偏移量,从而重新处理过去的数据;也可以跳过最近的记录,从‘现在’开始消费)。
          Kafka的消费者是非常廉价的,消费者的增加减少,对集群和其他消费者都没有多大的影响。


      持久化
          Kafka集群保留所有发布的记录,无论是否已被消费,并配置一个可配置参数保留期限来控制


      副本机制
          日志的分区partition(分布)在Kafka集群的服务器上。每个服务器在处理数据和请求时共享这些分区,每一个分区
        都会在已配置的服务器上进行备份,确保容错性。
          每一台分区都有一个server作为leadre,零台或多台server作为follwers。leaderserver处理一切对partition分区的读写请求,而follwers只需被动的同步leader上的数据。当leader宕机了,followers中的一台服务器会自动成为新的leader。通过这种机制,既可以保证数据有多个副本,也实现了一个高可用机制。
          每个分区的leader和follower一般会错在不同的brokeer


      Producer
          消息生产者,就是向Kafka broder发消息的客户端,生产者负责将记录分配到topic的指定partition(分区)中。


      Consumer
          消息消费者,向Kafka broker取消息的客户端。每个消费者都要维护自己读取数据的offset。


      Consumer Group
          每个消费者都会使用一个消费组名称来进行标识。同一组中的不同消费者实例,可以分布在多个进程或多个机器上。
          如果所有的消费者在同一消费组中,消息记录会负载平衡到每一个消费者实例(单播),及每个消费者可以读取一个topic的不同分区。
          如果所有的消费者实例在不同的消费组中,每条消息记录会广播到所有的消费者进程(广播)
          如果要实现广播,只要每个consumer有一个独立的组就可以了,要实现单播只要所有的consumer在同一个组
          一个topic可以有多个consumer group。topic的消息会复制(概念)到所有的GG,但每个partition 只会把消息发给该GG中的一个consumer。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星有印象

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值