我有 3 个代理 Kafka 集群,我正在寻找的是将任何 1 个代理设置为仅就绪模式。 我确实检查了 Kafka 文档,但没有找到任何配置来执行此操作。
有什么办法可以做到这一点吗?
更新
我的用例:
当前状态: 我有一个在正常状态下运行的 3 个代理 kafka 集群。
要实现的目标:我想更新所有 3 个代理的硬件。
我正在尝试什么:
- 启动 3 个新代理,并让他们加入集群(6 个集群(
- 使用重新分配分区工具将数据从旧代理迁移到新代理
- 一旦成功完成上述操作,则终止旧的3个经纪人
我确实验证了这一点,并且它工作正常,我可以看到我的所有数据都成功移动到新的经纪人。
. .
挑战是什么:
我确实有客户端(生产者和消费者(访问此集群。我希望上述活动是非停机的(我的意思是我不应该丢失任何客户端数据,现有客户端也应该能够访问服务(
我目前正在挖掘的事情是 - 如果客户端在数据迁移过程中同时请求创建新主题怎么办。
这会发生吗?
新主题的分区可能会转到旧代理,并且由于正在进行数据重新分配,因此不会重新分配此主题。(我知道它也可以转到新代理,但是如果所有分区都分配给旧代理怎么办(
因此,如果我终止旧经纪人,那么我会丢失新创建的主题吗?
因此
所以这就是为什么我正在寻找一种方法 - 通过这种方法,我可以确保将新主题的分区放置在新代理中(类似于将旧代理置于只读模式(
不能将代理设置为只读模式。 Kafka 代理不支持只读模式。