我目前正在与一位在kafka上的消费者苦苦挣扎,他们可以以某种方式安排将来的执行时间。
总结:我有一个大数据存储区(.csv文件),记录包含2列:时间戳记和值。我正在尝试根据其时间戳处理此值。第一个记录必须由kafka立即使用,下一个记录应在以后以“当前记录时间戳-上一个记录时间戳”的延迟进行处理(这不是一个很大的差异,只需几秒钟=结果将以毫秒为单位) ) 等等。
因此,基本上我找不到在kafka上实现使用者的解决方案,该使用者根据时间戳获取每个记录并使用该确切的延迟。我只需要模拟这些值,就必须根据延迟将它们插入数据库才能正常工作。
我试图与执行程序一起解决线程问题,但是对于大数据,这不是正确的方法。
我试图根据时间戳在生产者上创建动态主题,然后订阅它们,然后以某种方式处理队列。没用
我希望kafka消耗每条记录的时间都基于时间戳。
答案 0 :(得分:1)
我希望kafka消耗每条记录的延迟时间基于 时间戳
如果在消息之间有特定的延迟,则Kafka不是适当的解决方案。
当您将消息发送到Kafka时,在大多数情况下都使用网络。这可能会增加其自身的,不可预测的延迟。 Kafka正在作为一个不同的进程运行,没有人可以保证该进程在何时准备接收下一条消息。操作系统可能会暂停进程,GC可能会启动等。这增加了另一个没人能预料的延迟。
另外,Kafka并非设计为在收到消息后会随时间运行。它更着重于消息顺序,低延迟和高吞吐量,而不是时间。