我在过去几天一直在阅读有关Akka Streams的文章,过去几个月我一直在Scala中使用Rx库。对我来说,这些图书馆提供的内容似乎有些重叠。 RxScala起步,理解和使用起来要容易一些。例如,这是一个简单的用例,我使用Scala的Rx库连接到Kafka主题,将其包装成一个Observable,这样我就可以让订阅者获得这些消息。
val consumerStream = consumer.createMessageStreamsByFilter(topicFilter(topics), 1, keyDecoder, valueDecoder).head
val observableConsumer = Observable.fromIterator(consumerStream).map(_.message())
这很简单,很整洁。关于如何开始使用akka流的任何线索?我想使用上面的相同示例,我想从Source发出事件。我稍后会有一个Flow和一个Sink。最后,在我的主类中,我将结合这三个来运行应用程序数据流。
有什么建议吗?
答案 0 :(得分:2)
所以这就是我提出的:
val kafkaStreamItr = consumer.createMessageStreamsByFilter(topicFilter(topics), 1, keyDecoder, valueDecoder).head
Source.fromIterator(() => kafkaStreamItr).map(_.message)