• Kafka基本概念


    一、 Kafka数据怎么保障不丢失?

    一个是生产者端,一个消费者端,一个broker端。

    生产者数据的不丢失

    kafka在生产者里提供了消息确认机制,即可以通过配置来决定有几个副本收到消息,这条消息才算发送成功

    • ack=0:producer不等待broker同步完成的确认,继续发送下一条(批)信息。
    • ack=1(默认):producer要等待leader成功收到数据并得到确认,才发送下一条message
    • ack=-1:producer得到所有follwer确认,才发送下一条数据。

    消费者数据的不丢失

    通过offset commit 来保证数据的不丢失,kafka自己记录了每次消费的offset数值,下次继续消费的时候,会接着上次的offset进行消费。

    kafka集群中的broker数据不丢失

    每个broker中的partition我们一般都会设置有replication(副本)的个数,生产者写入的时候首先根据分发策略(有partition按partition,有key按key,都没有轮询)写入到leader中,follower(副本)再跟leader同步数据,这样有了备份,也可以保证消息数据的不丢失。

    二、kafka数据分区和消费者的关系?

    每个分区只能由同一个消费组内的一个消费者(consumer)来消费,可以由不同的消费组的消费者来消费,同组的消费者则起到并发的效果。Kafka中的数据的删除和是否消费没有关系,只跟kafka broker上的配置有关

    1. log.retention,hours=48 #数据最多保存48小时
    2. log.retention.byte=1073741824 #数据最多1G

    三、 kafka内部如何保证顺序,结合外部组件如何保证消费者的顺序?

    kafka只能保证partition内是有序的,但是partition间的有序是没办法的。爱奇艺的搜索架构,是从业务上把需要有序的打到同⼀个partition。

    四、kafka的消费者是pull()还是push()模式,这种模式有什么好处?

    Kafka 遵循了一种大部分消息系统共同的传统的设计:producer 将消息推送到 broker,consumer 从broker 拉取消息。

    优点:pull模式消费者自主决定是否批量从broker拉取数据,而push模式在无法知道消费者消费能力情况下,不易控制推送速度,太快可能造成消费者奔溃,太慢又可能造成浪费。

    缺点:如果 broker 没有可供消费的消息,将导致 consumer 不断在循环中轮询,直到新消息到到达


    五、Kafka 的设计架构?

    • Producer :消息生产者,就是向 kafka broker 发消息的客户端。
    • Consumer :消息消费者,向 kafka broker 取消息的客户端。
    • Topic :可以理解为一个队列,一个 Topic 又分为一个或多个分区,
    • Broker :一台 kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个 broker 可以容纳多个 topic。
    • Partition:为了实现扩展性,一个非常大的 topic 可以分布到多个 broker上,每个 partition 是一个有序的队列。partition 中的每条消息都会被分配一个有序的id(offset)。将消息发给 consumer,kafka 只保证按一个 partition 中的消息的顺序,不保证一个 topic 的整体(多个 partition 间)的顺序。
    • Segment :Partition在物理上由多个Segment数据文件组成,每个Segment数据文件都大小相等,按顺序读写
  • 相关阅读:
    进入大厂的我是如何通过面试官的问题,拿到满意的Offer?
    第1章-Spring的模块与应用场景
    ReentrantLock(公平锁、非公平锁)可重入锁原理
    草莓熊python turtle绘图代码
    记一次 ClickHouse 性能测试
    注意力(Attention)
    每天一道算法题(五)——判断一组数字是否连续,出现连续数字的时候以‘-’输出
    多路输出调光无频闪36V48V60V恒流50v磁吸灯pwm调光ic SL8700
    用C#实现简单的线性回归
    LeetCode 907. 子数组的最小值之和
  • 原文地址:https://blog.csdn.net/libaowen609/article/details/126695660