首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我当前运行的kafka broker已经拥有数据,那么如何在本地机器中再添加两个kafka代理

如果我当前运行的kafka broker已经拥有数据,那么如何在本地机器中再添加两个kafka代理
EN

Stack Overflow用户
提问于 2019-07-11 09:20:13
回答 2查看 4.1K关注 0票数 0

我有一个代理运行在我的本地机器与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服务器的情况下保存数据。

EN

回答 2

Stack Overflow用户

发布于 2019-07-11 09:34:47

是的,您可以将代理添加到集群中,并在所有代理之间迁移/传播数据。

文档中的扩展集群部分详细介绍了实现这一目标的步骤。

在启动新的代理之后,您基本上需要使用bin/kafka-reassign-partitions.sh工具(其他第三方工具也存在)将数据移动到它们上。

但是,请注意,在同一台机器上添加代理并不能提供很大的弹性,就好像机器将要崩溃一样,所有代理都会受到影响。但如果你只想玩一玩,了解卡夫卡,这可能是好的。

票数 1
EN

Stack Overflow用户

发布于 2019-07-11 09:42:36

要在同一台物理机器上运行多个代理,配置中的每个代理都必须指定一个唯一的broker.id、不同的log.dirslisteners中的端口。

例如,

代码语言:javascript
复制
config/server{1,2,3}.properties

在每个配置集中差异

代码语言:javascript
复制
broker.id=<id>
log.dirs=/data/kafka<id>
listeners=PLAINTEXT://localhost:909<id>

当所有三个代理开始时,将在整个集群中均匀地创建新的主题,但是旧的主题需要重新平衡。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56985807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档