Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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 使用常规“Kafka客户端”从Kafka流至少模拟一次`_Apache Kafka_Apache Kafka Streams - Fatal编程技术网

Apache kafka 使用常规“Kafka客户端”从Kafka流至少模拟一次`

Apache kafka 使用常规“Kafka客户端”从Kafka流至少模拟一次`,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,我想模拟以下Kafka Streams代码提供的至少一次保证: streamsBuilder.stream("topic-from").to("topic-to") 使用poll、send和commitAsync从kafka客户端。这必须是可能的,因为Kafka Streams在引擎盖下使用Kafka客户端 据我所知,Kafka Streams保证只有在代理确认在“topic to”上发布的所有消息时,才会提交“topic from”的偏移量 我的计划是

我想模拟以下Kafka Streams代码提供的至少一次保证:

streamsBuilder.stream("topic-from").to("topic-to")
使用
poll
send
commitAsync
kafka客户端
。这必须是可能的,因为Kafka Streams在引擎盖下使用
Kafka客户端

据我所知,Kafka Streams保证只有在代理确认在“topic to”上发布的所有消息时,才会提交“topic from”的偏移量

我的计划是将每个确认(对于生成的每条消息)收集到一个大的
CompletableFuture
(通过使用
send
函数的
Callback
-参数)中,并在完成时提交偏移量

我还认为我需要单独跟踪每个“批次”的每个偏移量,因为当发送批次1的消息尚未完成/确认(并且可能失败)时,我需要避免提交批次2的偏移量


这听起来相当复杂,所以我想知道是否有一种更简单的方法来实现这个(非常常见的)用例?

好吧,你可以看看卡夫卡的源代码,看看它是如何在StreamsAny idea中实现的。我在哪里可以找到它?在我问之前看了一眼,但它是一个相当吓人的代码库(至少对我来说是这样)。我不太确定代码中指向哪里。有什么特别的原因让你不能使用处理器API而不是生产者/消费者?我想向我的团队展示Kafka Streams的“免费”功能。我的意思是,你可以在这里找到如何配置交付语义的示例-或者,当在单个集群之间进行配置时,MirrorMaker1代码完全满足您的要求
┌─────────────────┐               ┌────┐               ┌─────────────────┐
│                 ├─poll(100 ms)─▶│    │─────send─────▶│                 │
│                 │               │    │               │                 │
│                 │               │    │               │                 │
│   topic-from    │               │    │               │    topic-to     │
│                 │               │    │               │                 │
│                 │               │    │               │                 │
│                 │◀─commitAsync──│    │◀─────ack──────┤                 │
└─────────────────┘               └────┘               └─────────────────┘