Java 非 HTTP 负载的容器选项
Java container options for non HTTP worloads
在我们当前的生产堆栈中,我们有不同类型的工作负载,其中许多与 HTTP 相关,运行 在 Tomcat 容器中,但我们也有一些其他类型的工作负载,这些工作负载已被拆分进入自我管理的独立应用程序和 war 文件,这些文件可以启动类似 cron 的作业、队列(MQTT 和 SNS)侦听器,以及用于具有大量不同 TCP 协议的物联网设备的守护程序类型的服务器。
我们war认为独立应用程序不容易管理,运行 Tomcat 容器中的上述服务也不完全正确,所以我询问 运行 此类服务的最佳实践是什么 and/or 现在用于这些目的的容器是什么。
我知道 EJB 可能适用于其中一些场景,但使用它们可能会产生相当大的开销,因此我正在尝试寻找更多选项。
PS:99% 的 software 是在 Java 中构建的,因此这对我们可能的选择造成了很大的限制。
听起来您可能想要一个成熟的 ESB(企业服务总线),尽管这可能有点矫枉过正。
如果您查看上面链接的维基百科页面的 Products section,您会发现多个选项。
但是,如果您只是寻找通信层,而不是完整的 ESB,您可以使用类似 Apache CXF, which is used by the Apache ServiceMix ESB 的东西。
我自己没用过,不过支持HTTP、JMS、WebSocket、CORBA等多种传输层,看来是你要的。
在我们当前的生产堆栈中,我们有不同类型的工作负载,其中许多与 HTTP 相关,运行 在 Tomcat 容器中,但我们也有一些其他类型的工作负载,这些工作负载已被拆分进入自我管理的独立应用程序和 war 文件,这些文件可以启动类似 cron 的作业、队列(MQTT 和 SNS)侦听器,以及用于具有大量不同 TCP 协议的物联网设备的守护程序类型的服务器。
我们war认为独立应用程序不容易管理,运行 Tomcat 容器中的上述服务也不完全正确,所以我询问 运行 此类服务的最佳实践是什么 and/or 现在用于这些目的的容器是什么。
我知道 EJB 可能适用于其中一些场景,但使用它们可能会产生相当大的开销,因此我正在尝试寻找更多选项。
PS:99% 的 software 是在 Java 中构建的,因此这对我们可能的选择造成了很大的限制。
听起来您可能想要一个成熟的 ESB(企业服务总线),尽管这可能有点矫枉过正。
如果您查看上面链接的维基百科页面的 Products section,您会发现多个选项。
但是,如果您只是寻找通信层,而不是完整的 ESB,您可以使用类似 Apache CXF, which is used by the Apache ServiceMix ESB 的东西。
我自己没用过,不过支持HTTP、JMS、WebSocket、CORBA等多种传输层,看来是你要的。