如何根据主题动态应用预定的Kafka消费者?

时间:2019-04-19 09:12:42

标签: java apache-kafka

我目前正在与一位在kafka上的消费者苦苦挣扎,他们可以以某种方式安排将来的执行时间。

总结:我有一个大数据存储区(.csv文件),记录包含2列:时间戳记和值。我正在尝试根据其时间戳处理此值。第一个记录必须由kafka立即使用,下一个记录应在以后以“当前记录时间戳-上一个记录时间戳”的延迟进行处理(这不是一个很大的差异,只需几秒钟=结果将以毫秒为单位) ) 等等。

因此,基本上我找不到在kafka上实现使用者的解决方案,该使用者根据时间戳获取每个记录并使用该确切的延迟。我只需要模拟这些值,就必须根据延迟将它们插入数据库才能正常工作。

我试图与执行程序一起解决线程问题,但是对于大数据,这不是正确的方法。

我试图根据时间戳在生产者上创建动态主题,然后订阅它们,然后以某种方式处理队列。没用

我希望kafka消耗每条记录的时间都基于时间戳。

1 个答案:

答案 0 :(得分:1)

  

我希望kafka消耗每条记录的延迟时间基于   时间戳

如果在消息之间有特定的延迟,则Kafka不是适当的解决方案。 当您将消息发送到Kafka时,在大多数情况下都使用网络。这可能会增加其自身的,不可预测的延迟。 Kafka正在作为一个不同的进程运行,没有人可以保证该进程在何时准备接收下一条消息。操作系统可能会暂停进程,GC可能会启动等。这增加了另一个没人能预料的延迟。
另外,Kafka并非设计为在收到消息后会随时间运行。它更着重于消息顺序,低延​​迟和高吞吐量,而不是时间。