Kafka消费者组重平衡流程

Kafka消费者组重平衡的作用是让组内各个消费者实例就消费主题的哪些分区达成一致。这整个流程需要借助Broker端的coordinator组件。以下的分析是基于Kafka2.3版本。重平衡触发的条件重平衡触发有3个条件:组成员数量发生变化。订阅主题数量发生变化。订阅的主题的分区数发生变化。重平衡过程

Kafka请求处理流程

Kafka中是通过请求响应的方式来完成数据交互的。今天,我们来看一看Kafka从请求的发起到响应,这一过程发生了什么。ApacheKafka自己定义了一些请求协议,用于实现各种各样的交互操作。常见的有PRODUCE请求是用于生产消息,FETCH请求是用于消费消息的,METADATA请求是用于请求Ka

Kafka副本机制

Kafka中,主题下有若干个分区,每个分区又会配置若干副本。层级为主题-分区-副本。副本定义副本,本质是一个只能追加写消息的提交日志。同一个分区下的所有副本保存相同的消息,这些副本分散保存再不同的Broker上,来对抗Broker宕机带来的数据不可用。副本角色如上图所示,Kafka中副本角色有两类,

Kafka消费者组

什么是消费者组ConsumerGroup是kafka提供的可扩展且具有容错性的消费者机制。组需要用唯一的id标识,这个id被称为groupid。组内可以有多个消费者实例。消费者组特性ConsumerGroup可以有一个或多个消费者实例。GroupID是一个字符串,在一个Kafka集群中,它标识唯一的

Kafka幂等和事务

在理解Kafka的幂等性前,我们需要了解Kafka提供哪几种消息交付可靠性保障。有以下三种,分别为:最多一次(atmostonce):消息可能会丢失,但绝不会被重复发送。至少一次(atleastonce):消息不会丢失,但有可能被重复发送。精确一次(exactlyonce):消息不会丢失,也不会被重

Kafka拦截器

今天我们来看看Kafka拦截器的使用,和在spring中拦截器被广泛使用不同,Kafka的拦截器自0.10.0.0版本被引入后并未得到太多的实际应用,但是我感觉这功能应该是个潜力股,所以今天我们来看看这个功能的使用吧。什么是拦截器?拦截器的基本思想是在不改变业务逻辑的情况下,动态地实现一组可拔插的事

Kafka无消息丢失配置

Kafka中如何防止消息丢失是很重要的内容,Kafka在什么情况下才能保证消息不丢失呢?概况起来就是,Kafka只对已提交的消息做有限度的持久化保证。如果消息都没能发送到broker端,Kafka也没办法。有限度是指集群中至少要有一台broker可用,如果机器全都挂了,那就没办法保证了。“消息丢失”

Kafka消息压缩了解

压缩是一种用时间换空间的trade-off(权衡)思想。Kafka中也是运用这种思想,用较小的CPU开销换取更少的磁盘占用或者更少的网络传输。那么在Kafka中,压缩的是什么呢?就是消息了,为了更好明白Kafka对压缩的改进,首先我们先看看消息的版本。消息的版本Kafka有两大消息版本,分别为V1版

生产者消息分区机制原理解析

在Kafka中,一个topic会有多个分区,一个topic下的消息只会在其中的一个分区。那么问题来了,为什么需要分区呢?答案:提供负载均衡的能力。不同的分区可以分布在不同的机器节点上,每台机器可以独立各种分区的消息的读写请求。Kafka的分区策略所谓分区策略是决定生产者将消息发送到哪个分区的算法。K