Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 隔离DC时,卡夫卡镜像生成器将复制_Apache Kafka - Fatal编程技术网

Apache kafka 隔离DC时,卡夫卡镜像生成器将复制

Apache kafka 隔离DC时,卡夫卡镜像生成器将复制,apache-kafka,Apache Kafka,我们有5个卡夫卡1.0.0集群: 其中4个由3个节点组成,位于世界不同地区 最后一个由5个节点组成,是一个仅聚合的集群 我们正在使用MirrorMaker(后来被称为MM)从区域集群中读取数据,并将数据复制到我们总部数据中心的聚合集群中 而且不确定在哪里运行,我们的prod环境中目前有两种情况: 区域中的MM:在本地提交偏移量之前,在本地读取并推送到远程数据中心(DC)中的聚合集群。我倾向于称之为推送模式(推送数据) 聚合集群的DC中的MM:远程读取数据,在提交远程DC上的偏移量之前在本地

我们有5个卡夫卡1.0.0集群:

  • 其中4个由3个节点组成,位于世界不同地区
  • 最后一个由5个节点组成,是一个仅聚合的集群
我们正在使用MirrorMaker(后来被称为MM)从区域集群中读取数据,并将数据复制到我们总部数据中心的聚合集群中

而且不确定在哪里运行,我们的prod环境中目前有两种情况:

  • 区域中的MM:在本地提交偏移量之前,在本地读取并推送到远程数据中心(DC)中的聚合集群。我倾向于称之为推送模式(推送数据)
  • 聚合集群的DC中的MM:远程读取数据,在提交远程DC上的偏移量之前在本地写入数据
我们得到了整个DC,我们的聚合服务器从网络角度完全隔离。在这两种情况下,我们的聚合集群中都有重复的记录

推送模式=MM本地到区域群集,将数据推送到远程聚合群集 MM开始抛出如下错误:

WARN [Producer clientId=producer-1] Got error produce response with correlation id 674364 on topic-partition <topic>-4, retrying (2147483646 attempts left). Error: NETWORK_EXCEPTION (org.apache.kafka.clients.producer.internals.Sender)
由于幂等性,到目前为止还可以

但最后我们得到了如下错误:

ERROR Error when sending message to topic debug_sip_callback-delivery with key: null, value: 1640 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for <topic>-4: 30032 ms has passed since batch creation plus linger time
ERROR Error when sending message to topic <topic> with key: null, value: 1242 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
java.lang.IllegalStateException: Producer is closed forcefully.
同时,在经纪人方面,我们得到:

INFO [GroupCoordinator 1]: Member mirror-maker-region1-agg-0-de2af312-befb-4af7-b7b0-908ca8ecb0ed in group mirror-maker-region1-agg has failed, removing it from the group (kafka.coordinator.group.GroupCoordinator)
...
INFO [GroupCoordinator 1]: Group mirror-maker-region1-agg with generation 42 is now empty (__consumer_offsets-2) (kafka.coordinator.group.GroupCoordinator)
后来在MM方面,有很多:

WARN [Consumer clientId=mirror-maker-region1-agg-0, groupId=mirror-maker-region1-agg] Connection to node 2 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
最后,当网络恢复时:

ERROR [Consumer clientId=mirror-maker-region1-agg-0, groupId=mirror-maker-region1-agg] Offset commit failed on partition <topic>-dr-8 at offset 382424879: The coordinator is not aware of this member. (org.apache.kafka.clients.consumer.internals.ConsumerCoordinator)
对于我们的制作人:

bootstrap.servers=kafka1.agg.internal:9092,kafka2.agg.internal:9092,kafka3.agg.internal:9092,kafka4.agg.internal:9092,kafka5.agg.internal:9092
compression.type=none
request.timeout.ms=30000
max.block.ms=60000
linger.ms=15000
max.request.size=1048576
batch.size=32768
buffer.memory=134217728
retries=2147483647
max.in.flight.requests.per.connection=1
acks=all
enable.idempotence=true

知道在30分钟隔离DCs的情况下,我们如何在一次交付的基础上实现“仅一次”交付吗?

特别想知道是否不应该有选项:-1-在拉动模式下,延迟消费者的重新平衡,如果在该延迟内,集团的所有消费者都离开了,就不这样做。然后,当他们回来时,给他们一些时间让他们在触发再平衡之前都回来。在这种情况下,当网络恢复30分钟后,消费者可以提交他们的偏移量,并且我们没有重复项-2-在拉模式下,让MirrorMaker在目标聚合集群上提交偏移量(类似于以事务方式将消费者的偏移量和消耗的数据存储在一起的最佳实践)。
ERROR [Consumer clientId=mirror-maker-region1-agg-0, groupId=mirror-maker-region1-agg] Offset commit failed on partition <topic>-dr-8 at offset 382424879: The coordinator is not aware of this member. (org.apache.kafka.clients.consumer.internals.ConsumerCoordinator)
bootstrap.servers=kafka1.region1.intenal:9092,kafka2.region1.internal:9092,kafka3.region1.internal:9092
group.id=mirror-maker-region-agg
auto.offset.reset=earliest
isolation.level=read_committed
bootstrap.servers=kafka1.agg.internal:9092,kafka2.agg.internal:9092,kafka3.agg.internal:9092,kafka4.agg.internal:9092,kafka5.agg.internal:9092
compression.type=none
request.timeout.ms=30000
max.block.ms=60000
linger.ms=15000
max.request.size=1048576
batch.size=32768
buffer.memory=134217728
retries=2147483647
max.in.flight.requests.per.connection=1
acks=all
enable.idempotence=true