gpt4 book ai didi

java - Java EE 中的双工流

转载 作者:行者123 更新时间:2023-11-29 05:48:21 25 4
gpt4 key购买 nike

我正在寻找使用 Java EE 的全双工流媒体解决方案。

情况:客户端应用程序 (JavaFX) 从外围设备读取数据。这些数据需要近乎实时地传输到服务器进行处理,并且还需要异步返回响应,同时它会不断发送新数据进行处理。

与服务器的通信需要尽可能低的开销。输入的数据基本上是一些传感器数据,经过处理后,这些数据被转换成可以描述为一组命令的内容。

我调查过的内容:

  1. TCP/IP 服务器(这是一种非 Java EE 方法)。这将是显而易见的解决方案。从每个客户端应用程序并行打开两个连接:一个用于上游数据,一个用于下游数据。
  2. 远程和无状态 EJB。这意味着不涉及流,我将传感器数据打包在较小的窗口中(1-2 秒的传感器数据),然后将其发送到服务器进行处理并获得处理结果作为响应。对于这种方法,虽然它是可扩展的,但我不确定考虑到我必须每 1-2 秒发出一个请求,它的速度有多快。我仍然需要对此进行测试,但我有疑问。
  3. RMI。从技术上讲,这与 EJB 有什么不同吗?
  4. 两个带有长轮询的 servlet(向上/向下)。我以前没有这样做过,所以需要测试一下。

现在我想测试我的方法 #2 的性能。第一个解决方案肯定有效,但我不太喜欢有一个单独的服务器(在 Tomcat 旁边,我已经在其中运行了一些东西)。

然而,与此同时,是否有任何其他特定于 Java 的(EE 或非 EE)技术可以轻松解决此问题,这将是值得了解的。如果有人有想法,请分享。

最佳答案

这看起来是使用 JMS 的好地方.您可能会使用 Message-Driven Beans 而不是无状态 EJB。 .

这为您提供了一种类似于您的第一个解决方案的方法,使用两个消息队列而不是 TCP/IP 连接。 JMS 使您的通信完全异步并且开销很低,因为无论您的服务器使用它们的速度有多快,您的客户端都可以尽可能快地发送消息。您还可以获得交付保证和其他 JMS 优势。

但是,Tomcat 并未附带 JMS。你可以试试 TomEE或将您现有的 Tomcat 与 JMS 实现集成,例如 ActiveMQ .

关于java - Java EE 中的双工流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14967335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com