关于kafka connector distributed Mode的个人理解和疑问

一如乞人不需要形象 发表于: 2020-06-12   最后更新时间: 2020-06-12 13:56:11   1,149 游览
  1. 一个kafka cluster就是一个worker
  2. Distributed Mode需要每个cluster都配置好server.properties,distributed.properties,以及在libs里放入相关的jar, 并且每个cluster都需要执行distributed.sh
  3. 基于2,call任意一个server的api,都能启动一个新connector,具体工作在哪个server,是kafka自己均衡的,比如有6个connector,3个cluster,一般来说每个cluster2个connector work.
  4. 基于2,Distributed模式是如何保证每个cluster间配置的一致性性的,还是压根不保证,得自己保证这些,我起了两个cluster(一个配置了jar,一个没有),call一个server(无jar)可以看到另一个server(有jar)上起的connector状态,但call这个server(无jar)起connector会报错,没有指定的connctor.
  5. 发帖不能带表情,否则会被吞,亲测--!

大神,我的这些理解正确吗?还有麻烦解答一下里面的疑问。谢谢

发表于 2020-06-12

4报错,没有找到指定的connect class

我看你已经测试出来了,每个cluster间的配置你不配就报错了,kafka是基于你的配置加载运行和建立联系的。

另外,连接器的核心设计思想是基于consumer和producer模型的,它包装了一下这个模型,worker里包含了group.id你就明白了,它所有的保障,都是利用原来的模型做的。

那如果一个cluster里jar版本是1.0,一个是1.1,connector随到哪就用哪个jar?不搞什么一致性?
还有kafka connector是如何保证数据连续的,比如10个数据传进去,怎么能保证全部传进去了?不可能code里面每次都看offset是不是上次的吧

jar包放在不同的kafka集群上,当kakfa节点分配到任务的时候,会去找你对应提供的jar,因为kafka是无法把你的jar同步到所有节点上。如果你提供错的,那该节点就是错的。

你的答案

查看kafka相关的其他问题或提一个您自己的问题