是否可以使用Apache Camel实现服务器推送?

时间:2016-03-23 09:55:12

标签: java csv apache-camel server-push

目前在我的应用程序中,我有一个显示一些信息的组件。它每分钟使用jetty与包含csv文件的服务器进行通信,以查看它是否发生了变化。我想改进这个解决方案,并且有可能在csv文件发生变化时立即更新我的组件。

我考虑使用Apache Camel,因为在收到有关更改的推送后,我想将它也发送到系统的其他部分,例如使用RMI。 我阅读了Apache Camel的文档,我发现很容易在组件之间接收,处理和发送数据,但我不确定它是否也可以等待通知。 也许我应该考虑除了骆驼之外的其他事情?

非常感谢您的帮助。感谢。

1 个答案:

答案 0 :(得分:0)

Camel可以很好地处理异步调用,例如来自服务器推送的异步调用。根据服务器发送更新的csv文件的方式,您可以相应地触发其余的进程。例如,您可以让端点不断监听文件丢弃,每当新的csv文件显示在目录中时,它将自动触发其余的进程。您也可以通过Web服务调用或从某个队列中提取信息来执行相同的操作。

更新:

我在下面的评论中用完了字符,所以我会在这里完成我的想法。使用服务器推送方法,您不会进行昂贵的Web调用来检查文件是否已更改。您将实现一个等待来自服务器的激励的侦听器。我建议的一种方法是让服务器向你推送一个文件(使用FTP或其他东西),你有一个camel端点监听它。本质上,camel端点是轮询,但这种轮询并不昂贵,因为您只是轮询本地目录而不是进行Web调用。我不知道你对服务器推送有多少控制,但如果你想让这个调用真正异步,你可以让服务器推送为一个web服务,它将调用你公开的SOAP / REST端点。然后,该webservice调用将通过零轮询触发您想要的其余路由/进程。