kafka-manager

简介: 今天kafka-manager监控到异常:Brokers Leader Skew指标不正常,指标有偏离说明分区分配有问题,发现broker列表中少了一台机器,将服务器kafka重启后恢复正常。kafka-manager指标Brokers Spread看作broker使用率,如kafka集群9个broker,某topic有7个partition,则broker spread: 7 / 9 = 77%。

今天kafka-manager监控到异常:

image

Brokers Leader Skew指标不正常,指标有偏离说明分区分配有问题,发现broker列表中少了一台机器,将服务器kafka重启后恢复正常。

kafka-manager指标

Brokers Spread

image

看作broker使用率,如kafka集群9个broker,某topic有7个partition,则broker spread: 7 / 9 = 77%。

Brokers Skew

image

partition是否存在倾斜,如kafka集群9个broker,某topic有18个partition,正常每个broker应该2个partition。若其中有3个broker上的partition数>2,则broker skew: 3 / 9 = 33%。

Brokers Leader Skew

image

leader partition是否存在倾斜,如kafka集群9个broker,某topic有18个partition,则正常每个broker有2个leader partition。若其中一个broker有0个leader partition,一个有4个leader partition,则broker leader skew: (4 - 2) / 14 = 14%。

image

由于kafka所有读写都在leader上进行, broker leader skew会导致不同broker的读写负载不均衡,配置参数

auto.leader.rebalance.enable=true 

可以使kafka每5min自动做一次leader的rebalance,消除这个问题。

Under Replicated

该 topic 下的 partition,其中副本处于失效或者失败的比率。失败或者失效是指副本不处于 ISR 队列中。目前控制副本是否处于 ISR 中由 replica.log.max.ms 这个参数控制。

replica.log.max.ms: 如果一个follower在这个时间内没有发送fetch请求或消费leader日志到结束的offset,leader将从ISR中移除这个follower,并认为这个follower已经挂了,默认值 10000 ms。

Lag为什么有时是负数?

Lag代表consumer的消费能力,计算公式为

Lag = Consumer Offset - LogSize

Kafka Manager先从zk获取LogSize,再从kafka __consumer_offsets topic读取Offset。两步操作存在一个时间gap,因此吞吐很大的topic上会出现Offset > LogSize的情况。导致Lag负数。

如下图:
image

目录
相关文章
|
1月前
|
消息中间件 存储 缓存
从0开始回顾Kafka---系列三
消费者只能拉取到这个 offset 之前的消息。
|
1月前
|
消息中间件 存储 容灾
从0开始回顾Kafka---系列一
2、 Kafka有哪些优点和缺点? 优点: 1. 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒。 2. 可扩展性:kafka集群支持水平扩展。 3. 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失。 4. 容错性:允许集群中节点故障(若副本数量为n,则允许n-1个节点故障)。 5. 高并发:支持数千个客户端同时读写。 缺点: 1. 同步收发消息的响应时延比较高,因为当客户端发送一条消息的时候,Kafka 并不会立即发送出去,而是要等一会儿攒一批再发送。 2. Kafka 不太适合在线业务场景,由于是批量发送,所以数据达不到真正的实时。 3.
|
1月前
|
消息中间件 存储 安全
从0开始回顾Kafka---系列二
生产者 1、 Kafka 中的分区器、序列化器、拦截器是否了解?它们之间的处理顺序是什么? 分区器 ● 消息经过序列化之后就需要确定它发往的分区,如果消息 ProducerRecord 中指定了 partition 字段,那么就不需要分区器的作用,因为 partition 代表的就是所要发往的分区号。 ● 如果消息 ProducerRecord 中没有指定 partition 字段,那么就需要依赖分区器,根据 key 这个字段来计算 partition 的值。分区器的作用就是为消息分配分区。 序列化器 ● 生产者需要用序列化器(Serializer)把对象转换成字节数组才能通
|
5月前
kafka-manager
kafka-manager
25 0
|
5月前
|
消息中间件 Kafka Linux
kafka3.0创建topic出现zookeeper is not a recognized option
kafka3.0创建topic出现zookeeper is not a recognized option
82 0
|
9月前
|
消息中间件 缓存 运维
DiDi Kafka-Manager安装和简单使用
DiDi Kafka-Manager安装和简单使用
237 0
|
11月前
|
消息中间件 Java Kafka
Apache Kafka-CMAK(kafka manager)安装部署使用
Apache Kafka-CMAK(kafka manager)安装部署使用
307 0
|
11月前
|
消息中间件 监控 Kafka
Apache Kafka-使用Kafak Tool 查看Kafka中的数据
Apache Kafka-使用Kafak Tool 查看Kafka中的数据
334 0
|
消息中间件 Kafka 测试技术
Kafka-manager部署与使用简单介绍
Kafka-manager部署与使用简单介绍
271 0
Kafka-manager部署与使用简单介绍
|
消息中间件 Kafka
Ambari部署Kafka
Ambari部署Kafka
157 0
Ambari部署Kafka