我們有生產者向 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。hello-world Sink 配置kafka-connect-elasticsearch可能如下所示:
# 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在單個行程中執行作業時運行或嘗試運行并不理想。我知道使用分布式模式會是一個更好的選擇,但我不清楚將連接器提交到分布式模式的最佳性能方式。即,
- 在分布式模式下,我是否還想
elasticsearch.properties通過單個 API 呼叫只提交一個?或者最好將多個.properties配置 連接器(例如一個用于 syslog,一個用于 nginx,一個用于 zeek.**)并分別提交? - 我知道這
tasks等于主題數 x 磁區數,但是什么決定了作業人員的數量? - 檔案中是否有任何地方介紹了針對不同主題的吞吐量明顯不平衡的情況的最佳實踐?
uj5u.com熱心網友回復:
在分布式模式下,我是否還想通過單個 API 呼叫只提交一個 elasticsearch.properties ?
它會是一個 JSON 檔案,但是是的。
什么決定了工人的數量?
由你決定。JVM 使用情況是您可以監控和擴展的因素之一
并不是我所知道的任何檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/355193.html
下一篇:通過指向陣列的指標回傳結果
