我正在寻找Java EE的全双工流式传输解决方案。Java EE中的双工流式传输
情况:客户端应用程序(JavaFX)从外围设备读取数据。这些数据需要几乎实时地传输到服务器进行处理,并且还可以异步地获取响应,同时不断发送新数据进行处理。
与服务器的通信需要尽可能低的开销。进入的数据基本上是一些传感器数据,并且在处理之后它被转换成可被描述为一组命令的内容。
我已经看了什么为:
- TCP/IP服务器(这是一个非Java EE的做法)。这将是显而易见的解决方案。从每个客户端应用程序并行打开两个连接:一个用于上游数据,另一个用于下游数据。
- 远程&无状态EJB。这意味着没有流式传输,并且我将传感器数据打包在较小的窗口中(传感器数据为1-2秒),然后发送到服务器进行处理并获得处理结果作为响应。对于这种方法,虽然它具有可扩展性,但我不确定考虑每隔1-2秒发出一次请求的速度有多快。我仍然需要测试这个,但我有我的疑惑。
- RMI。从技术上讲,这与EJB有什么不同?
- 两个长查询的servlet(向上/向下)。我以前没有这样做过,所以这是要测试的东西。
现在我想测试我的方法#2的性能。第一个解决方案肯定会起作用,但我不太喜欢有一个单独的服务器(在Tomcat旁边,我已经有一些东西在运行)。然而,与此同时,值得了解是否还有其他可以轻松解决这个问题的Java特定(EE或非)特定技术(EE或不)的技术。如果有人有想法,请分享。
是的,我将与ActiveMQ一起(至少对于测试)。我有时间研究它,另一方面的MDB也无济于事,因为我需要将处理后的消息返回给发件人。但是我发现ActiveMQ支持消息转换。基本上,我可以在经纪人传递给消费者之前处理消息。 – 2013-02-20 21:03:53