非 HTTP 负载的 Java 容器选项

标签 java http tomcat ejb containers

在我们当前的生产堆栈中,我们有不同类型的工作负载,其中许多与 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等多种传输层,看来是你要找的。

关于非 HTTP 负载的 Java 容器选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43417016/

相关文章:

java - 如何确定重复整数的个数及其个数?

java - 如何使用 ExecutorService Java 在新线程上运行每个客户端?

python - 为什么 Python 套接字在 HTTP 套接字的 recv 循环期间没有收到最终的空白值?

maven - Spring Boot应用程序没有启动tomcat

c# - 从 C# 代码调用 Tomcat 服务器

java - 跨不同 JVM 的相同 SparkContext

javax.ws.rs.client.Client如何配置readTimeOut?

java - 无法从 Spring 应用程序上下文创建 ThreadPoolExecutor

java - 在 RPT 运行期间,驱动程序报告它不再从工作台接收消息

java - 如何在 Spring MVC 中进行通配符 bean 映射?