【发布时间】:2020-07-03 19:04:32
【问题描述】:
我有 3 个代理 Kafka 集群,我正在寻找的是将任何 1 个代理设置为仅就绪模式。 我确实检查了 Kafka 文档,但没有找到任何配置。
有什么办法可以做到吗?
更新
我的用例:
当前状态: 我有一个以健康状态运行的 3 代理 kafka 集群。
要实现的目标:我想更新所有 3 个代理的硬件。
我正在尝试什么:
- 启动 3 个新代理,并让它们加入集群(6 个集群)
- 使用重新分配分区工具将数据从旧代理迁移到新代理
- 一旦成功完成上述操作,则终止旧的 3 个代理
我确实验证了这一点,它工作正常,我可以看到我的所有数据都成功地转移到了新的经纪人。
。 .
挑战是什么:
我确实有客户端(生产者和消费者)访问这个集群。我希望上述活动是NON-DOWNTIME(我的意思是我不应该丢失任何客户端数据,现有客户端也应该能够访问服务)
我目前正在挖掘的东西是 - 如果客户在数据迁移正在进行的同时提出创建新主题的请求。
会发生这种情况吗?
新主题的分区可能会分配给旧代理,并且由于正在进行数据重新分配,因此不会重新分配该主题。(我知道它也可以分配给新代理,但是如果所有分区都分配给旧代理呢?经纪人)
所以如果我终止旧代理,那么我会失去新创建的主题吗?
因此
这就是为什么我一直在寻找一种方法 - 通过它我可以确保将新主题的分区放置到新代理(类似于将旧代理置于只读模式)
【问题讨论】:
-
您能否详细说明您的用例,说明您为什么要这样做?
-
@JavaTechnical- 添加了我的用例。
-
您是否尝试在保持重新分配过程的同时推送新数据?我想主题元数据更新通知将发送给您的客户,然后他们从/向新代理重新读取/生成数据。
-
@JavaTechnical- 让我试试
标签: apache-kafka apache-zookeeper