gpt4 book ai didi

stream - 为每个键使用来自主题的最新值

转载 作者:行者123 更新时间:2023-12-02 11:21:26 25 4
gpt4 key购买 nike

我有一个 Kafka 生产者,它以高速率生成消息(消息键是让我们说用户名和值是他在游戏中的当前分数)。 Kafka 消费者处理消费消息的速度相对较慢。这里我的要求是显示最新的分数并避免显示陈旧的数据,权衡可能永远不会显示某些分数。

基本上对于每个用户名,我可能在同一个分区中有数百条消息,但我总是想阅读最新的一条。

一个粗略的解决方案是这样的:生产者在每条消息和实际值写入数据库时​​只发送一个键,该数据库与消费者共享。消费者从队列中读取每个键并从数据库中读取值。在这里,始终读取最新值的目标是通过生产者覆盖数据库中的值来实现的——因此实际上正在读取给定键的消费者实际上将使用最新值。但由于读取和更新次数较多(慢、竞争条件等),该解决方案存在一些缺点。

我正在寻找在 kafka 或 kafka 流中解决这个问题的更自然的方法,我可以以某种方式定义 从每个键的数据流中获取键的最新值 .谢谢!

最佳答案

下面的代码有帮助

KStreamBuilder builder = new KStreamBuilder();
KTable<String, String> dataTable = builder.table("input-topic");
dataTable.toStream().foreach((key, message) -> client.post(message));
KafkaStreams streams = new KafkaStreams(builder, config);
streams.start();

在实践中使这成为可能的是传入流的内存压缩(详细说明 here)。我们可以使用参数 cache.max.bytes.buffering 控制压力和 commit.interval.ms

关于stream - 为每个键使用来自主题的最新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50065094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com