如何有效扩展 Kafka Connect?

问题描述 投票:0回答:1

我想运行一个本地 Kafka Connect (KC) 集群,它将运行多个不同的“源”和“接收器”连接器。目前在测试配置中,我将 KC 集群扩展到 3 个实例,每个实例消耗大约 60G 的堆内存。

对于如何有效扩展 Kafka Connect 实例有什么建议吗? 例如每个 KC 实例推荐的 CPU/RAM 数量? 最大实例数 ?

apache-kafka apache-kafka-connect distributed-system horizontal-scaling
1个回答
1
投票

没有最佳实践,因为这完全取决于您使用的连接器。

例如,S3/HDFS sink buffer data in memory,所以heap size预计会很大。同样对于接收器连接器,您不能将它们的任务扩展到它们的主题的分区数之外。对于 JDBC/Debezium 源,每个源表不能有多个任务...

如果您只是问如何管理它的扩展,那么假设您没有使用 Kubernetes,像 Ansible/Terraform 这样的配置管理可以提供帮助。

就我个人而言,我已经管理了一个多达 30 个节点的集群,每个服务器可能有 64G 的 RAM?我忘记了 EC2 类型,但我们需要在每个假日季节再扩展几个节点来处理负载,所以现在它可能是一个更大的集群

我不建议从 Xmx=60G 开始,因为垃圾收集可能会导致问题。您需要设置 JVM 监控并跟踪实际的堆使用情况

© www.soinside.com 2019 - 2024. All rights reserved.