操作背景
假如topic test.example中partition 0的replicas为[0,4],则0为preferred replica,应该成为leader。
这时我们期望4为preferred replica,并变成leader。
执行步骤如下:
1.查看当前的topic详细信息:
lizhitao@users-MacBook-Pro-2:~$ ./bin/kafka-topics.sh –zookeeper 192.168.2.225:2183/config/mobile/mq –describe –topic test.example
Topic:test.example PartitionCount:12 ReplicationFactor:2 Configs:
Topic: test.example Partition: 0 Leader: 0 Replicas: 0,4 Isr: 0,4
Topic: test.example Partition: 1 Leader: 1 Replicas: 1,5 Isr: 1,5
Topic: test.example Partition: 2 Leader: 2 Replicas: 2,3 Isr: 2,3
Topic: test.example Partition: 3 Leader: 0 Replicas: 0,4 Isr: 0,4
Topic: test.example Partition: 4 Leader: 1 Replicas: 1,5 Isr: 1,5
Topic: test.example Partition: 5 Leader: 2 Replicas: 2,3 Isr: 2,3
Topic: test.example Partition: 6 Leader: 0 Replicas: 0,4 Isr: 0,4
Topic: test.example Partition: 7 Leader: 1 Replicas: 1,5 Isr: 1,5
Topic: test.example Partition: 8 Leader: 2 Replicas: 2,3 Isr: 2,3
Topic: test.example Partition: 9 Leader: 0 Replicas: 0,4 Isr: 0,4
Topic: test.example Partition: 10 Leader: 1 Replicas: 1,5 Isr: 1,5
Topic: test.example Partition: 11 Leader: 2 Replicas: 2,3 Isr: 2,3
2.修改replicas的顺序
lizhitao@users-MacBook-Pro-2:~$ cat partitions-to-move.json
{
“partitions”: [
{
“topic”: “test.example”,
“partition”: 0,
“replicas”: [
4,
0
]
}
],
“version”: 1
}
lizhitao@users-MacBook-Pro-2:~$ ./bin/kafka-reassign-partitions.sh –zookeeper 192.168.2.225:2183/config/mobile/mq –reassignment-json-file partitions-to-move.json –execute
3.更改leader
lizhitao@users-MacBook-Pro-2:~$ cat topicPartitionList.json
{
“partitions”:
[
{“topic”: “test.example”, “partition”: 0}
]
}
lizhitao@users-MacBook-Pro-2:~$ ./bin/kafka-preferred-replica-election.sh –zookeeper 192.168.2.225:2183/config/mobile/mq –path-to-json-file topicPartitionList.json
4.检查replicas leader切换情况
lizhitao@users-MacBook-Pro-2:~$ ./bin/kafka-topics.sh –zookeeper 192.168.2.225:2183/config/mobile/mq –describe –topic test.example
Topic:test.example PartitionCount:12 ReplicationFactor:2 Configs:
Topic: test.example Partition: 0 Leader: 4 Replicas: 4,0 Isr: 0,4
Topic: test.example Partition: 1 Leader: 1 Replicas: 1,5 Isr: 1,5
Topic: test.example Partition: 2 Leader: 2 Replicas: 2,3 Isr: 2,3
Topic: test.example Partition: 3 Leader: 0 Replicas: 0,4 Isr: 0,4
Topic: test.example Partition: 4 Leader: 1 Replicas: 1,5 Isr: 1,5
Topic: test.example Partition: 5 Leader: 2 Replicas: 2,3 Isr: 2,3
Topic: test.example Partition: 6 Leader: 0 Replicas: 0,4 Isr: 0,4
Topic: test.example Partition: 7 Leader: 1 Replicas: 1,5 Isr: 1,5
Topic: test.example Partition: 8 Leader: 2 Replicas: 2,3 Isr: 2,3
Topic: test.example Partition: 9 Leader: 0 Replicas: 0,4 Isr: 0,4
Topic: test.example Partition: 10 Leader: 1 Replicas: 1,5 Isr: 1,5
Topic: test.example Partition: 11 Leader: 2 Replicas: 2,3 Isr: 2,3
相关推荐
在分布式消息系统Kafka中,Topic是数据的逻辑存储单元,它是消息的分类或主题。本文将深入探讨如何管理和操作Kafka的Topic,包括创建、查看、分区以及删除等核心概念。 **创建Topic** 在Kafka中,创建Topic通常通过...
在分布式消息系统Kafka中,Topic是数据存储和消费的基本单元。Topic迁移是将一个Topic的数据从一个集群移动到另一个集群的过程,这对于扩展、备份或故障恢复等操作至关重要。本篇将详细介绍如何利用自动化脚本实现...
在本项目中,我们将深入探讨如何使用Spring Boot与Kafka进行集成,实现一个实战项目,包括Kafka的生产者、消费者以及如何创建Topic,并且特别关注指定消费分区这一高级特性。Kafka是一款高吞吐量的分布式消息系统,...
在本文中,我们将对比分析Apache Kafka与Apache RocketMQ在处理大量Topic时的性能表现。上一期测试主要关注了三款消息中间件(Kafka、RabbitMQ、RocketMQ)在简单消息发送场景下的性能,而本期则模拟了一个更为实际...
在本文中,我们将深入探讨如何在Spring Boot 2.x应用程序中整合Apache Kafka,重点是实现指定分区发送、批量消费以及指定topic分区消费的功能。Apache Kafka是一个分布式流处理平台,广泛用于构建实时数据管道和流...
1、在Java代码中调用ZooKeeper的工具类,创建Topic。 2、建立一个含有Topic属性的JavaBean,set内容到各个属性中。 3、Id的规则尚不明确,目前用yyyy-MM-dd日期格式代替id,作为命名后缀。 4、前缀目前在代码中直接...
Kafka中的Topic是一个记录消息的类别或者名称,是消息传递模型的核心。对于Kafka的Topic配置参数,下面将详细讲解一些重要的参数。 1. cleanup.policy 这个参数用于指定日志段的清理策略。它接受"delete"或者...
在本文中,我们将深入探讨Kafka-Manager的功能、使用方法以及它在实际运维中的价值。 1. **功能概述**: - **集群管理**:Kafka-Manager允许用户添加、删除和查看Kafka集群的详细信息,如 brokers、topics、...
解决方案是,在代码中添加安全认证,解决 Kafka 安全认证问题,确保 Flink 可以成功获取 Kafka Topic Metadata。 九、总结 本文总结了 Flink 无法获取 Kafka Topic Metadata 异常的原因和解决方法,解决了 Kafka ...
生产者连接到Kafka集群,创建主题(Topic),然后将数据发布到指定的主题中。以下是一些关键步骤: 1. 创建Kafka生产者配置:配置包括Bootstrap Servers(Kafka集群地址)、Key Serializer和Value Serializer(数据...
flume从kafka读取数据,然后再sink到kafka中, ...表现为,Kafka Source可以正常从指定的Topic中读取数据,但在Kafka Sink中配置的目标Topic不起作用,数据仍然 会被写入到Source中指定的Topic中。
Kafka集群为每个topic维护一个分区日志,分区是一个有序且不可变的记录集,并且数据记录会不断地追加到结构化的commit log文件中。每个记录都有一个offset标识,表示顺序。 Kafka的四个核心API包括: 1. 生产者API...
需要修改 application.conf 配置文件中的 kafka-manager.zkhosts,配置 kafka-manager 所用 zookeeper 集群,和 Kafka 所用 zookeeper 集群保持一致。 4. Topic 迁移 Topic 迁移需要使用 kafka-manager 进行 Topic...
标题中的“kafka的topic小工具”指的是一个用于管理和操作Kafka主题的实用程序,它提供了用户友好的界面或命令行工具,使得在Kafka集群上执行常见的管理任务变得简单。Kafka是一个分布式流处理平台,广泛应用于...
**Kafka Tool 连接 Kafka 工具详解** 在大数据处理和实时流处理领域,Apache Kafka 是一个不可或缺的组件,它作为一个...如果你在工作中经常与 Kafka 打交道,那么熟练掌握 `kafkatool` 将极大地提升你的工作效率。
在Kafka监控中,获取指定topic的消息总量是一个关键任务,这对于了解系统的运行状态、消息处理效率以及故障排查至关重要。本文将通过一个Java示例详细解释如何实现这一功能。 首先,我们要明白Kafka是一个分布式流...
在大数据处理领域,将Kafka数据接入到MySQL中是一个常见的需求。Kafka作为一个高吞吐量、分布式的实时消息发布订阅系统,常用于日志收集、流式数据处理等场景。而MySQL则作为广泛应用的关系型数据库,用于持久化和...
接着,入门简介部分通常会快速介绍Kafka的基础知识,包括它的基本概念、术语和关键组件,如生产者(Producer)、消费者(Consumer)、代理(Broker)、主题(Topic)、分区(Partition)、副本(Replica)等。...
在Kafka中,数据是以主题(Topic)的形式存储的。主题可以被分成多个分区(Partition),每个分区可以有多个副本(Replica)以实现数据冗余和高可用性。 【多线程与Kafka】 在"Kafka-java-demo"中,你可能会看到...
在Kafka中,生产者负责生成消息并将其发布到主题(topics),而消费者则订阅这些主题并消费其中的消息。本篇文章将深入探讨如何在Java环境中使用IDEA,通过Maven构建工具来实现Kafka的生产者和消费者。 首先,我们...