kafka connect:在分布式模式下创建新连接器就是创建新组

drkbr07n  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(501)

我目前正在使用confluent 3.0.1平台。我尝试在两个不同的worker上创建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连接自动创建的,不是我提供的。我在worker.properties中指定了不同的group.id。但我希望两个连接器都在同一个组下,以便它们并行工作以共享消息。到目前为止,我有100万个关于“dev.ps\u primary\u delivery”主题的数据,我希望两个连接器每个都能获得50万个数据。
请告诉我怎么做。

g2ieeal7

g2ieeal71#

您可以将consumer.group.id设置为kafka connect可以接受的值,并将其用作整个应用程序的group.id
优点:您的应用程序只连接了一个消费组,缺点是:您应该注意消费组的配置。让他们看起来都一样

anauzrmj

anauzrmj2#

我想需要澄清一下。。。 group.id 在worker.properties文件中,不引用使用者组。它是一个“工作组”--同一工作组中的多个工作人员将在他们之间分配工作--因此,如果同一个连接器有许多任务(例如jdbc连接器对每个表都有一个任务),那么这些任务将分配给组中的所有工作人员。
接收器连接器确实有属于消费群体的消费群体。此组的group.id始终为“connect-”+connector name。在您的例子中,根据您的连接器名称得到了“connect-connector1”和“connect-connector2”。这也意味着两个连接器在同一组中的唯一方式是。。。如果他们有相同的名字。但是名称是唯一的,所以不能在同一组中有两个连接器。原因是。。。
连接器本身并不真正获取事件,它们只是启动一系列任务。每个任务都有属于连接器使用者组的使用者,每个任务都将独立地处理主题和分区的子集。所以在同一组中有两个连接器,基本上意味着它们的所有任务都是同一组的一部分-那么为什么需要两个连接器呢?只需为这个连接器配置更多的主题和任务,就可以了。
唯一的例外是,如果您使用的连接器没有正确使用任务,或者将您限制为只执行一个任务。在这种情况下-要么他们有一个很好的理由或(更有可能)有人需要改善他们的连接器。。。

相关问题