我是Spring Integration的新手,我正在尝试设置一个简单的用例:
轮询远程休息端点,将返回的有效载荷分为多行,然后将其发送到KAFKA出站适配器。我成功地做了类似的事情,它使用了文件适配器,但是我遇到了HTTP适配器。我不明白如何将投票程序与HTTP入站适配器相关联。
到目前为止,我的方法是创建一个简单的流程:
return IntegrationFlows
.from
(
Http.inboundChannelAdapter("http://localhost:8080/data")
.requestMapping(m -> m.methods(HttpMethod.GET))
.replyTimeout(20)
)
.channel(INBOUND_DEMO_CHANNEL)
.get();
inboundChannelAdapter
似乎不接受Poller
。在我以前使用文件的尝试中,我创建了一个FileReadingMessageSource
,使我的流程看起来像:
return IntegrationFlows.from(fileReadingMessageSource,
// POLLER CONFIGURATION
.poller(Pollers.fixedDelay(period)
...
.get();
,但我找不到相当于http消息源的等效。
好吧,您缺少http是事件驱动的的事实,并且在这里是服务器。您可以从最终用户的角度以某种方式使用它,例如从浏览器或某些命令行工具或任何其他HTTP客户端调用URL。
不确定是什么让您认为HTTP服务器正在进行轮询。不确定它应该进行什么调查...
也许您需要的完全相反-Http.outboundGateway()
,您可以在其中调用一些远程休息服务并等待回复。但这已经不是源,它是处理器。
如果您确实需要定期致电此类服务,则可以考虑使用简单的轮询MessageSource
:
IntegrationFlows.from(() -> new GenericMessage<>(""),
.poller(Pollers.fixedDelay(period))
.handle(Http.outboundGateway("http://localhost:8080/data"))