我正在重构我的一些Spring Integration RSS feed代码,该代码使用feed入站通道适配器到微服务。我希望将feed存储在mongodb数据库内部(如果出现故障,审计等),并将feed(以JSON格式)写入kafka主题以进行后续处理。
如何使用Spring Integration执行此操作?我需要一个带有两个处理程序的pub / subscribe队列吗?
任何使用Java DSL的示例代码都会非常有用。
答案 0 :(得分:0)
不确定是否需要pub / sub用于此类用例,但绝对可以在Feed Inbound Channel Adapter和Kafka Outbound Channel Adapter之间使用QueueChannel
。 QueueChannel
实际上可以提供MongoDbChannelMessageStore
以便在出现故障时保持持久性。
Java DSL示例如下:
@Bean
public IntegrationFlow feedFlow(MongoDbChannelMessageStore messageStore) {
return IntegrationFlows
.from(Feed.inboundAdapter(...),
e -> e.poller(p -> p.fixedDelay(1000)))
.channel(c -> c.queue(messageStore, "entries"))
.handle(Kafka.outboundChannelAdapter(...),
e -> e.poller(p -> p.fixedDelay(1000)))
.get();
}