• kafka基础知识点整理


    1、主要组成:生产者,消费者,topic,borker(实例),分区(Partition)
    2、一个topic下可以有多个分区(Partition),创建topic时可以传参设置,默认是一个topic一个分区,其他的消息中间件大部分都是只有一个分区,kafka可以多个分区同时消费,所以kafka的吞吐量是很大的
    3、和ActiveMq对比
    activeMq:消息被消费之后会返回sck,消息队列接收到sck则会清除队列中的消息
    Kafka:配置项中设置默认的消息过期时间,默认是七天,到期之后会清除分区中的消息,没到期之前不会清除,消费的顺序通过(偏移量)offset来记录。Kafka还可以制定offset进行消费,可以从头开始,也可以只消费最新的消息,也可以指定具体的offset。多个分区,也需要制定具体的分区,然后再指具体的偏移量(offset)
    4、集群状态下,kafka会选举leader,消息发布会同步给其他节点
    5、如果同一个topic下存在多个分区Partition,kafka默认采用轮询机制关联不同的Leader,主要是实现高可用的特点,不至于一个节点挂了,影响所有的消息传递
    6、Kafka集群搭建,需要修改borker.id,监听的端口,日志的路径,连接在同一个注册中心
    7、Kafka的主要配置文件是server.properties
    8、可以同步发,也可以异步发送
    9、生产者常用属性:
    在这里插入图片描述

    10、消费者常用属性:
    在这里插入图片描述

    11、官网文档地址:https://kafka.apache.org/28/javadoc/org/apache/kafka/clients/producer/ProducerRecord.html
    12、Kafka消息丢失:可以给生产者添加重试属性
    13、Kafka重复消费:自动提交offset可能会存在重复消费的问题,可以改为手动提交,消费者获取消息之后,如果消息的数量大于0(record.count() > 0),则手动提交offset

    14、Kafka如何保证数据的可靠性,就是数据成发送
    (1)Ack机制,
    ①0:只管发送,不考虑发送成功还是没成功
    ②1:只保证发送给leader,不管其他节点同步成功没成功
    ③-1(all):只有全部节点都同步成功,才会认定发送成功
    15、isr机制:副本列表,副节点会拉去leader节点的数据,isr列表中的默认都是正常节点,都能和leader节点保持数据一致,
    (1)副节点失效的场景:根据副本和leader 的交互时间差,如果大于某个时间差 就认定这个副本不行了,就把此副本从isr 中剔除,此时间差根据
    配置参数rerplica.lag.time.max.ms=10000 也就是默认10s,isr中的follow没有向isr发送心跳包就会被移除

  • 相关阅读:
    STM32F4_HAL_LWIP_RAM接口UDP实验
    win11怎么看cpu几核几线程? win11查看cpu是几核几线程的教程
    手撕520页PDF高级文档,成功“挤掉”7年开发架构师,牛逼
    数据结构-归并排序Java实现
    TypeScripe笔记:any、unknown、never、void、null 和 undefined 及其比较
    BluePrism注册下载并安装-RPA第一章
    逆置链表(原地逆置链表)
    C++重点归纳
    CVE-2023-3836:大华智慧园区综合管理平台任意文件上传漏洞复现
    Linux操作文档——MySQL搭建MyCAT(5.7.26)
  • 原文地址:https://blog.csdn.net/weixin_44271364/article/details/126569189