繁体   English   中英

在 Kafka Connect 分布式模式下为多个主题配置连接器

[英]Configuring connectors for multiple topics on Kafka Connect Distributed Mode

我们有生产者向 Kafka 发送以下内容:

  • topic=syslog,每天约 25,000 个事件
  • topic=nginx,每天约 5,000 个事件
  • topic=zeek.xxx.log,每天约 100,000 个事件(总计)。 在最后一种情况下,有 20 个不同的 zeek 主题,例如 zeek.conn.log 和 zeek.http.log

kafka-connect-elasticsearch实例作为消费者将数据从 Kafka 传送到 Elasticsearch。 kafka-connect-elasticsearch的 hello-world Sink 配置可能如下所示:

# elasticsearch.properties
name=elasticsearch-sink
connector.class=io.confluent.connect.elasticsearch.ElasticsearchSinkConnector
tasks.max=24
topics=syslog,nginx,zeek.broker.log,zeek.capture_loss.log,zeek.conn.log,zeek.dhcp.log,zeek.dns.log,zeek.files.log,zeek.http.log,zeek.known_services.log,zeek.loaded_scripts.log,zeek.notice.log,zeek.ntp.log,zeek.packet_filtering.log,zeek.software.log,zeek.ssh.log,zeek.ssl.log,zeek.status.log,zeek.stderr.log,zeek.stdout.log,zeek.weird.log,zeek.x509.log
topic.creation.enable=true
key.ignore=true
schema.ignore=true
...

并且可以用bin/connect-standalone.sh调用。 我意识到在单个进程中执行工作时运行或尝试运行tasks.max=24并不理想。 我知道使用分布式模式会是一个更好的选择,但我不清楚将连接器提交到分布式模式的最佳性能方式。 即,

  • 在分布式模式下,我是否还想通过单个 API 调用只提交一个elasticsearch.properties 或者最好将多个.properties配置 + 连接器(例如一个用于 syslog,一个用于 nginx,一个用于 zeek.**)并分别提交?
  • 我知道tasks数等于主题数 x 分区数,但是什么决定了工作人员的数量?
  • 文档中是否有任何地方介绍了针对不同主题的吞吐量明显不平衡的情况的最佳实践?

在分布式模式下,我是否仍想通过单个 API 调用仅提交单个 elasticsearch.properties?

它会是一个 JSON 文件,但是是的。

什么决定了工人的数量?

由你决定。 JVM 使用情况是您可以监控和扩展的因素之一

并不是我所知道的任何文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM