簡體   English   中英

Kafka-Connect:在分布式模式下創建新連接器就是創建新組

[英]Kafka-Connect: Creating a new connector in distributed mode is creating new group

我目前正在使用 confluent 3.0.1 平台。 我正在嘗試在兩個不同的工作人員上創建 2 個連接器,但嘗試創建一個新的連接器正在為其創建一個新組。

Two connectors were created using below details:

1) POST http://devmetric.com:8083/connectors

{
    "name": "connector1",
    "config": {
        "connector.class": "com.xxx.kafka.connect.sink.DeliverySinkConnector",
        "tasks.max": "1",
        "topics": "dev.ps_primary_delivery",
        "elasticsearch.cluster.name": "ad_metrics_store",
        "elasticsearch.hosts": "devkafka1.com:9300",
        "elasticsearch.bulk.size": "100",
        "tenants": "tenant1"
    }
}

2) POST http://devkafka01.com:8083/connectors

{
    "name": "connector2",
    "config": {
        "connector.class": "com.xxx.kafka.connect.sink.DeliverySinkConnector",
        "tasks.max": "1",
        "topics": "dev.ps_primary_delivery",
        "elasticsearch.cluster.name": "ad_metrics_store",
        "elasticsearch.hosts": "devkafka.com:9300",
        "elasticsearch.bulk.size": "100",
        "tenants": "tenant1"
    }
}

但是它們都是在不同的組 ID 下創建的。 在此之后,我查詢了現有的組。

$ sh ./bin/kafka-consumer-groups --bootstrap-server devmetric.com:9091  --new-consumer  --list

Result was:
connect-connector2
connect-connector1

這些組是 Kafka connect 自動創建的,不是我給的。 我在 worker.properties 中給出了不同的 group.id。 但是我希望兩個連接器都在同一個組下,以便它們並行工作以共享消息。截至目前,我在主題“dev.ps_primary_delivery”上有 100 萬個數據,我希望兩個連接器各獲得 50 萬個數據。

請讓我知道如何做到這一點。

我認為需要澄清一些......

  1. group.id文件中的 group.id 不是指消費者組。 它是一個“工作組”——同一個工作組中的多個工作人員將在他們之間分配工作——所以如果同一個連接器有很多任務(例如 JDBC 連接器對每個表都有一個任務),這些任務將分配給所有組中的工人。

  2. 接收器連接器確實有屬於消費者組的消費者。 該組的 group.id 始終為“connect-”+連接器名稱。 在您的情況下,您會根據連接器名稱獲得“connect-connector1”和“connect-connector2”。 這也意味着兩個連接器在同一組中的唯一方式是...如果它們具有相同的名稱。 但是名稱是唯一的,因此同一組中不能有兩個連接器。 原因是...

  3. 連接器本身並沒有真正獲得事件,它們只是啟動一堆任務。 每個任務都有屬於連接器消費者組的消費者,每個任務將獨立處理主題和分區的子集。 因此,在同一組中有兩個連接器,基本上意味着他們的所有任務都屬於同一組 - 那么為什么需要兩個連接器? 只需為該連接器配置更多主題和更多任務,一切就緒。

唯一的例外是您使用的連接器未正確使用任務或將您限制為僅執行一項任務。 在這種情況下 - 他們要么有充分的理由,要么(更有可能)有人需要改進他們的連接器......

您可以將 consumer.group.id 設置為 Kafka Connect 可以采用的值,並將其用作整個應用程序的 group.id

優點:您的應用程序連接到一個消費者組 缺點:您應該小心消費者組配置。 讓它們看起來都一樣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM