Kafka连接与自己的消费者/生产者

qyswt5oh  于 2021-06-06  发布在  Kafka
关注(0)|答案(3)|浏览(503)

我需要了解何时使用Kafka连接与自己的消费者/生产者编写的开发人员。我们正在汇合平台上。为了实现容错设计,我们是否必须从所有代理运行消费者/生产者代码(jar文件)?

2w3kk1z5

2w3kk1z51#

我们是否必须从所有代理运行消费者/生产者代码(jar文件)?
不要在代理上运行客户端代码。为代理进程保留所有内存和磁盘访问。
何时使用kafka connect与自己的消费者/产品
根据我的经验,这些因素应该考虑在内
不管怎样,您计划部署和监视kafka connect,并且有可用的资源来执行此操作。再说一次,它们不会在代理机器上运行
您不打算经常更改连接器代码,因为您必须重新启动整个连接器jvm,它将运行其他不需要重新启动的连接器
您不能将自己的生产者/消费者代码集成到现有的应用程序中,或者只是希望有一个更简单的生产者/消费者循环
最好将结构化数据不绑定到特定的二进制格式
编写您自己的或使用社区连接器是经过良好测试和配置的,适合您的用例
与原始生产者/消费者api相比,connect的容错选项有限,缺点是代码更多,具体取决于所使用的其他库
注意:confluent平台仍然是ApacheKafka

1hdlvixo

1hdlvixo2#

kafka-connect:kafka-connect是一个开源平台,基本上包含两种类型:sink和source。kafka connect用于从数据库向kafka获取数据或将数据放入数据库。Kafka连接有助于使用Kafka的各种其他系统。它也有助于跟踪从db到kafka的变化(如其中一个答案ChangedDataCapture(cdc))中所述。系统维护偏移量,以便将数据从特定偏移量读/写到kafka或任何其他数据库。
有关详细信息,请参阅https://docs.confluent.io/current/connect/index.html
生产者/消费者:
生产者和消费者只是一个终端系统,他们利用Kafka来生产和消费与Kafka有关的主题。它们用于我们希望向消费者组中的不同消费者广播数据的地方。这种系统还为消费群体维护数据的滞后和偏移。
不,运行kafka connect时不需要运行任何生产者/消费者。如果要检查是否存在数据丢失,可以在运行源连接器时运行使用者。对于sink连接器,可以通过运行特定的select查询在数据库中验证已经生成的数据。

zwghvu4y

zwghvu4y3#

Kafka连接通常用于将外部源连接到Kafka,即从Kafka生产/消费外部源。
任何你能用连接器做的事情都可以通过生产者+消费者来完成
现成的连接器只会简化外部源到kafka的连接,而不需要开发人员编写底层代码。
要记住的几点。。
如果源和接收器都是同一个kafka集群,那么连接器就没有意义了
如果要从数据库执行更改数据捕获(cdc)并将其推送到kafka,则可以使用数据库源连接器。
资源限制:Kafka连接是一个单独的过程。因此,请仔细检查您可以在资源和开发易用性之间进行哪些权衡。
如果你正在写你自己的连接器,它是好的,除非有人还没有写它。如果您使用的是第三方连接器,则需要检查它们的维护情况和/或是否提供支持。

相关问题