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