如何使用Reactor-Kafka创建冷发布者?

时间:2017-12-02 13:54:32

标签: apache-kafka reactive-programming observer-pattern project-reactor

是否可以在不订阅的情况下创建Kafka发布者,然后从另一个应用程序创建消费者,订阅该主题并触发记录发布?

我通过以下方式创建发布商:

  1. 致电KafkaSender.create(senderOptions)
  2. 后跟createOutbound()
  3. 只要应用程序正在运行,
  4. 就会连续调用send()
  5. 在消费者方面(不同的应用程序),我所做的是:

    1. 致电KafkaReceiver.create(options)
    2. 后跟receive()
    3. 后跟subscribe(function -> doSomething())
    4. 目前,除非我在发布商处then().subscribe(),否则消费者不会收到任何消息,这会使其立即发出声音。理想情况下,我希望它在其他应用程序的消费者订阅时开始发送。

      你能告诉我我想做的事情是否可行?

      非常感谢。

      可以在此处找到Reactor-Kafka项目:https://github.com/reactor/reactor-kafka

1 个答案:

答案 0 :(得分:0)

好吧,我认为你应该从概念经纪人开始。这正是将消费者与生产者区分开来的想法,让最后一个消费者与生产者区别开来,如果在另一方面有消费者,那就真的不担心。

当消费者到达代理进行订阅时,它能够读取主题中的所有旧记录,或者只对新生成的内容作出反应。但这已经是目标消息代理实现的细节。

消费者肯定没有API可以找出有关该主题的消费者。我担心你需要实施自己的解决方案。甚至可能通过相同的Kafka但使用单独的主题 - 类似发送/接收命令消息,并且已经存在,通过适当的命令,从生产者方面了解有生产者,因此调用提到的then().subscribe()。 / p>