如何使用Apache Kafka生成/使用延迟消息?标准的Kafka(和Java的kafka-client)功能似乎没有这个特性。我知道我自己可以用标准的等待/通知机制来实现它,但是它看起来不是很可靠,所以任何建议和好的实践都很感谢。
找到相关问题,但没有帮助。正如我所看到的:Kafka基于从文件系统的顺序读取,并且只能用于直接读取主题,保持消息的顺序。我说的对吗?
的确,kafka最低结构是一个分区,它们是队列中具有增量偏移量的顺序事件--在生成日志的时刻,除了末尾之外,您不能在任何其他地方插入日志。没有延迟消息的概念。
你到底想实现什么?
您的情况下的一些可能性:
关于你的最后一个问题:基本上是的,但有一些注意事项:
我正在使用Spring Kafka1.0.3来消费kafka消息。Kafka的2个主题,每个主题有1个分区。在java代码中,有2@KafKalistener来消费每个主题消息。ConcurrentKafkaListenerContainerFactory的并发设置为1。但消息有时会延迟20秒以上。 有人知道为什么吗? 添加调试日志,并且延迟不是每次都可以,有时也可以:
我正在使用Kafka0.8.0并尝试实现下面提到的场景。 JCA API(充当生产者并将数据发送到)------>消费者------>HBase 当我使用JCA客户端获取数据时,我会立即将每个消息发送给消费者。例如,一旦生产者发送第1号消息,我就想从消费者那里获取相同的消息并将其“放入”HBase。但是我的消费者在一些随机的n条消息之后开始获取消息。我想让生产者和消费者同步,这样他们两个开始一起工
主要内容:1 load加载延迟消息数据,1.1 parseDelayLevel解析延迟等级,2 start启动调度消息服务,3 DeliverDelayedMessageTimerTask投递延迟消息任务,3.1 executeOnTimeup执行延迟消息投递,3.2 scheduleNextTimerTask下一个调度任务,3.3 correctDeliverTimestamp校验投递时间,3.4 messageTimeup恢复正常消息,,基于RocketMQ release-4.9.3,深入
在测试应用程序中,我使用以下命令实现了用于发送通知消息的FCM https://github.com/firebase/quickstart-android/tree/master/messaging 为了进行测试,我使用通知下的“新消息”从Firebase控制台发送了消息(晚上8:42)。 但在我的模拟器中,我在晚上9:06收到了消息 请让我知道是否有什么可以减少延误。 谢谢你。
我们在RHEL 7.0 VM上部署了一个Java/spring/Tomcat应用程序,它使用AlejandRorivera/Embedded-RabbitMQ,一旦部署了war,它就启动Rabbitmq服务器,并连接到它。我们有多个队列用来处理和过滤事件。 流程如下所示: 我们接收到的事件->发布事件队列->侦听器类筛选事件->发布到另一个队列进行处理->我们发布到另一个队列进行日志记录。 问题是
CP正在使用我们的REST API从他们在新加坡的服务器发送推送。