6

我目前正在使用 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。但我希望两个连接器都在同一个组下,以便它们并行工作以共享消息。截至目前,我有 100 万个关于“dev.ps_primary_delivery”主题的数据,我希望两个连接器各获得 50 万个数据。

请让我知道如何做到这一点。

4

2 回答 2

21

我认为需要澄清一些...

  1. group.id在 worker.properties 文件中没有引用消费者组。它是一个“工作组”——同一个工作组中的多个工作人员将在他们之间分配工作——所以如果同一个连接器有很多任务(例如 JDBC 连接器对每个表都有一个任务),这些任务将分配给所有组内的工人。

  2. 接收器连接器确实有属于消费者组的消费者。该组的group.id 始终为“connect-”+连接器名称。在您的情况下,您根据连接器名称获得了“connect-connector1”和“connect-connector2”。这也意味着两个连接器位于同一组中的唯一方法是......如果它们具有相同的名称。但是名称是唯一的,因此同一组中不能有两个连接器。原因是...

  3. 连接器本身并不真正获取事件,它们只是启动一堆任务。每个任务都有属于连接器消费者组的消费者,每个任务将独立处理主题和分区的子集。所以在同一个组中有两个连接器,基本上意味着他们所有的任务都属于同一个组 - 那么为什么需要两个连接器呢?只需为那个连接器配置更多主题和更多任务,就可以了。

唯一的例外是您使用的连接器未正确使用任务或将您限制为仅一项任务。在那种情况下——要么他们有充分的理由,要么(更有可能)有人需要改进他们的连接器......

于 2017-01-20T02:35:11.633 回答
0

您可以将 consumer.group.id 设置为 Kafka Connect 可以采用的值,并将其用作整个应用程序的 group.id

优点:您的应用程序连接到一个消费者组 缺点:您应该小心消费者组的配置。让它们看起来都一样

于 2018-08-14T20:48:13.733 回答