执行 reassign partition命令:
/opt/kafka/bin/kafka-reassign-partitions.sh --zookeeper 10.117.10.194:2181,10.252.223.221:2181,10.117.3.243:2181 --reassignment-json-file p4.json --execute
之后topic状态不正常
[root@prod-mq1 bin]# ./kafka-topics.sh --describe --zookeeper 10.117.10.194:2181,10.252.223.221:2181,10.117.3.243:2181 --topic ods_prod11_5_7
Topic:ods_prod11_5_7 PartitionCount:10 ReplicationFactor:3 Configs:
Topic: ods_prod11_5_7 Partition: 0 Leader: 1 Replicas: 1,2,3 Isr: 1
Topic: ods_prod11_5_7 Partition: 1 Leader: 1 Replicas: 1,2,3 Isr: 1
Topic: ods_prod11_5_7 Partition: 2 Leader: 1 Replicas: 1,2,3 Isr: 1
Topic: ods_prod11_5_7 Partition: 3 Leader: 1 Replicas: 1,2,3 Isr: 1
Topic: ods_prod11_5_7 Partition: 4 Leader: 1 Replicas: 1,2,3 Isr: 1
Topic: ods_prod11_5_7 Partition: 5 Leader: 1 Replicas: 1,2,3 Isr: 1
Topic: ods_prod11_5_7 Partition: 6 Leader: 1 Replicas: 1,2,3 Isr: 1
Topic: ods_prod11_5_7 Partition: 7 Leader: 1 Replicas: 1,2,3 Isr: 1
Topic: ods_prod11_5_7 Partition: 8 Leader: 1 Replicas: 1,2,3 Isr: 1
Topic: ods_prod11_5_7 Partition: 9 Leader: 1 Replicas: 1,2,3 Isr: 1
Topic 处于 under replicated 状态.
server.log 充满:
[2018-08-08 16:21:12,773] WARN Received a PartitionLeaderEpoch assignment for an epoch < latestEpoch. This implies messages have arrived out of order. New: {epoch:13, offset:89409682}, Current: {epoch:38, offset84236994} for Partition: prod-rm-bp1p125xw0bvcey34-2 (kafka.server.epoch.LeaderEpochFileCache)
求教大家,如何让topic恢复正常?
你分配分区的脚本贴一下。
问题解决了
改变了bootstrap端口到9093.。 停止和producer通信。重启broker。
然后ISR就和 RF 一样了
你迁移的时候 还有生产者?
对. 执行脚本 迁移时候, 生产者仍在生产数据.
忽视吧,有新的交易进来,有序打破了。
话说,你的副本太多了,主备就好。
如何忽视?Replicas: 1,2,3 Isr: 1, 意味着 只有一个broker有数据,如果该broker shutdown, 整个partition就不能访问.
如何让ISR 同步为 [1,2,3]?
主备就好 是什么意思?
同步完成后,还是这样吗? 就是2个副本。
当副本落后太多,就不会在isr中了。
1 如何判断副本是否落后leader 太多?
2 如果落后太多, 不在ISR, 如何让副本加入ISR?
谢谢!
通过检查replication-offset-checkpoint, 我发现 broker2,3的副本已经停止同步了:
cat replication-offset-checkpoint |grep ods_prod11_5_7 ods_prod11_5_7 6 5101186 ods_prod11_5_7 9 2734089 ods_prod11_5_7 7 6379237 ods_prod11_5_7 0 6006019 ods_prod11_5_7 3 6199149 ods_prod11_5_7 5 3782093 ods_prod11_5_7 8 7968393 ods_prod11_5_7 4 6279389 ods_prod11_5_7 2 5780622 ods_prod11_5_7 1 4235235 <===不再增长
而broker1 上面的文件再不停增长.
只能看日志,没有相关命令确认的,导致没同步有以下3种原因
1、由于io引发的同步慢,导致落后
2、在一定周期时间内follower停止从leader拉取请求。follower replica卡住了是由于GC暂停或follower失效或死亡。
3、当用户给topic增加新的副本时,新的follower不在同步副本列表中,直到他们完全赶上了leader日志。
follower replica卡住了是由于GC暂停或follower失效或死亡:
看了follower GC日志,GC正常
follower失效或死亡: 是否能够从日志判断?
如果是这样,如何恢复follower?
日志没有打异常信息吗?
这是之前的错误吧。。
请问这个 warning 该怎么消除呢
你的答案