在我们当前的生产堆栈中,我们有不同类型的工作负载,其中许多与 HTTP 相关并在 Tomcat 容器中运行,但我们也有一些其他类型的工作负载,这些工作负载已被拆分为 self 管理的独立应用程序和触发的 war 文件为具有大量不同 TCP 协议(protocol)的 IoT 设备设置类似 cron 的作业、队列(MQTT 和 SNS)监听器以及守护程序类型的服务器。
我们知道独立应用程序不容易管理,并且在 Tomcat 容器中运行上述类型的服务也不完全正确,所以我想问一下运行此类服务的最佳实践是什么和/或什么是现在用于这些目的的容器。
我知道 EJB 可能适用于其中一些场景,但使用它们可能会产生相当大的开销,因此我正在尝试寻找更多选项。
PS:99% 的软件都是用 Java 构建的,因此这对我们可能的选择造成了很大的限制。
最佳答案
听起来您可能想要一个成熟的 ESB (企业服务总线),尽管这可能有点矫枉过正。
如果您查看 Products section在上面链接的维基百科页面中,您会找到多个选项。
但是,如果您只是寻找通信层,而不是完整的 ESB,您可以使用类似 Apache CXF 的东西,由 Apache ServiceMix 使用ESB。
我自己没用过,不过支持HTTP、JMS、WebSocket、CORBA等多种传输层,看来是你要找的。p>
关于非 HTTP 负载的 Java 容器选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43417016/