提问者:小点点

Kafka连接器-分布式负载平衡任务


我运行的是Confluent Kafka的开发环境,Windows上的社区版,版本3.0.1-2.11。我试图在连接器的两个实例之间实现任务的负载平衡。我在同一台机器上运行Kafka Zookepper、Server、REST services和2个Connect实例。连接器的属性文件之间的唯一区别是rest端口,因为它们运行在同一台机器上。我不为连接器偏移、配置、状态创建主题。我应该吗?我有水槽连接器的自定义代码。

当我为宿连接器创建工作程序时,我通过执行POST请求来完成

POST http://localhost:8083/connectors

朝向任何正在运行的连接器。在URL检查是否有加载的工人

GET http://localhost:8083/connectors

我的接收器连接器在代码中有System. out.println()行,我可以在控制台日志中跟踪我的代码输出。当我的工作人员运行时,我可以看到只有一个连接器实例正在执行代码。如果我终止一个连接器,另一个实例将接管工作人员并恢复执行。然而,这不是我想要的。我的目标是两个连接器实例都在运行工作人员代码,以便它们之间可以分担负载。我试图克服一些开源连接器,看看编写连接器代码是否有细节,但没有成功。

我做了一些不同的尝试来解决这个问题,但没有成功。我可以重写我的业务代码来解决这个问题,但我很确定我错过了一些对我来说不明显的东西。最近我对Robin Moffatt对这个问题的回答发表了评论。


共1个答案

匿名用户

从声音上看,您的自定义代码没有正确生成预期的任务数量。

  • 确保您已设置tasks. max

引用:

  • https://opencredo.com/blogs/kafka-connect-source-connectors-a-detailed-guide-to-connecting-to-what-you-love/
  • https://docs.confluent.io/current/connect/devguide.html
  • https://enfuse.io/a-diy-guide-to-kafka-connectors/