我有一个代理运行在我的本地机器与Windows操作系统,其中有2-3个主题与消息存储。我想通过增加两个代理实例来扩展我的机器。通过创建不同的属性文件,我遵循了在相同的机器上配置3个代理的所有步骤。
当我以以下错误启动broker=1服务器时,我的broker=1会关闭。
2019-07-11 13:56:33,580信息停止在dir C中服务日志:\kafka_2.12-2.2.1\data\kafka (kafka.log.LogManager) 2019-07-11 13:56:33,585错误关闭代理,因为C:\kafka_2.12-2.2.1\data\kafka中的所有日志目录都失败了(kafka.log.LogManager)
如果我现有的代理实例有数据,是否可以添加更多的代理。还是需要删除数据目录并重新启动broker 0。是否有可能在不删除kafka服务器的情况下保存数据。
发布于 2019-07-11 09:34:47
是的,您可以将代理添加到集群中,并在所有代理之间迁移/传播数据。
文档中的扩展集群部分详细介绍了实现这一目标的步骤。
在启动新的代理之后,您基本上需要使用bin/kafka-reassign-partitions.sh工具(其他第三方工具也存在)将数据移动到它们上。
但是,请注意,在同一台机器上添加代理并不能提供很大的弹性,就好像机器将要崩溃一样,所有代理都会受到影响。但如果你只想玩一玩,了解卡夫卡,这可能是好的。
发布于 2019-07-11 09:42:36
要在同一台物理机器上运行多个代理,配置中的每个代理都必须指定一个唯一的broker.id、不同的log.dirs和listeners中的端口。
例如,
config/server{1,2,3}.properties在每个配置集中差异
broker.id=<id>
log.dirs=/data/kafka<id>
listeners=PLAINTEXT://localhost:909<id>当所有三个代理开始时,将在整个集群中均匀地创建新的主题,但是旧的主题需要重新平衡。
https://stackoverflow.com/questions/56985807
复制相似问题