- 一个kafka cluster就是一个worker
- Distributed Mode需要每个cluster都配置好server.properties,distributed.properties,以及在libs里放入相关的jar, 并且每个cluster都需要执行distributed.sh
- 基于2,call任意一个server的api,都能启动一个新connector,具体工作在哪个server,是kafka自己均衡的,比如有6个connector,3个cluster,一般来说每个cluster2个connector work.
- 基于2,Distributed模式是如何保证每个cluster间配置的一致性性的,还是压根不保证,得自己保证这些,我起了两个cluster(一个配置了jar,一个没有),call一个server(无jar)可以看到另一个server(有jar)上起的connector状态,但call这个server(无jar)起connector会报错,没有指定的connctor.
- 发帖不能带表情,否则会被吞,亲测--!
大神,我的这些理解正确吗?还有麻烦解答一下里面的疑问。谢谢
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同步到所有节点上。如果你提供错的,那该节点就是错的。
你的答案