Jakarta ee 应用服务器的替代方案

Jakarta ee 应用服务器的替代方案,jakarta-ee,osgi,websphere-8,vert.x,Jakarta Ee,Osgi,Websphere 8,Vert.x,我是一名JavaEE开发人员,已经参与一个项目一段时间了。应用程序只是一个缓存。它通过ejb/RMI从后端加载数据,通过JPA将数据存储到数据库,并向前端应用程序提供SOAP web服务以访问该数据库中的数据。应用程序本身以及整个后端都是在Websphere服务器上运行的JavaEE应用程序 我的问题是,这个设置是重量级的,在我看来很难维护。现在,为了总结经验教训,我想知道对于整个应用程序设计或部分应用程序设计,有哪些替代方案。我想从您那里了解一下,在2014年解决我的问题的(工作)企业解决方案

我是一名JavaEE开发人员,已经参与一个项目一段时间了。应用程序只是一个缓存。它通过ejb/RMI从后端加载数据,通过JPA将数据存储到数据库,并向前端应用程序提供SOAP web服务以访问该数据库中的数据。应用程序本身以及整个后端都是在Websphere服务器上运行的JavaEE应用程序

我的问题是,这个设置是重量级的,在我看来很难维护。现在,为了总结经验教训,我想知道对于整个应用程序设计或部分应用程序设计,有哪些替代方案。我想从您那里了解一下,在2014年解决我的问题的(工作)企业解决方案中使用了哪些技术:

  • 运行基于OSGi的总线,而映射是通过ApacheCamel(包括EJB访问)示例实现的
  • 将技术用于前端服务,如vert.x
  • Spring是JavaEE的替代品,Tomcat是Websphere的替代品
  • 使用基于脚本语言(如python)的技术省略服务器
谢谢你的建议。
关于

我认为在过去五年左右的时间里,我所在的咨询公司没有人在一个知名的共享应用服务器上部署过新的应用程序。虚拟化取代了应用服务器作为应用到铁多路复用器,这些虚拟机现在被Docker容器取代。应用程序嵌入了自己的HTTP堆栈,可能是Tomcat,但越来越多的是异步堆栈,因为每个套接字一个线程会抑制可伸缩性

如果我们要像您今天描述的那样构建一个API转换器、获取和转发系统,那么它很可能是在Scala中使用Akka和Spray,可以选择坐在Nginx后面。存在着有趣的替代方案,例如Clojure,但这是我们最熟悉的堆栈。我不知道我们是否使用了vert.x,但它适合这个空间

我们不再经常使用肥皂了。Spring框架和Hibernate也是如此


应用程序的本地数据存储可能不是RDBMS。我不知道你们系统的全部要求。听起来它已经存在了一段时间了,所以当你把它描述为“只是一个缓存”时,我想它比这更复杂。根据具体情况,我们已经部署了memcached、Redis、GemFire、MongoDB、Riak或PostgreSQL。

我认为在过去五年左右的时间里,我所在的咨询公司没有人在一个知名的共享应用服务器上部署过新的应用程序。虚拟化取代了应用服务器作为应用到铁多路复用器,这些虚拟机现在被Docker容器取代。应用程序嵌入了自己的HTTP堆栈,可能是Tomcat,但越来越多的是异步堆栈,因为每个套接字一个线程会抑制可伸缩性

如果我们要像您今天描述的那样构建一个API转换器、获取和转发系统,那么它很可能是在Scala中使用Akka和Spray,可以选择坐在Nginx后面。存在着有趣的替代方案,例如Clojure,但这是我们最熟悉的堆栈。我不知道我们是否使用了vert.x,但它适合这个空间

我们不再经常使用肥皂了。Spring框架和Hibernate也是如此


应用程序的本地数据存储可能不是RDBMS。我不知道你们系统的全部要求。听起来它已经存在了一段时间了,所以当你把它描述为“只是一个缓存”时,我想它比这更复杂。根据上下文,我们已经部署了MycCurp、ReDIS、GEMFLASH、MunGDB、RIAK或PostgreSQL。它与Tomcat一样轻量级,但您可以启用所需的功能(如JAX-RS、EJBLite、JPA),而无需在提供和测试不同的库时寻找和匹配它们。它是经过认证的JavaEEWeb配置文件。使用Tomcat具有较少的SENS,因为您必须自己构建服务器,并与任何库不兼容。它与Tomcat一样轻量级,但您可以启用所需的功能(如JAX-RS、EJBLite、JPA),而无需在提供和测试不同的库时寻找和匹配它们。它是经过认证的JavaEEWeb配置文件。使用Tomcat的意义不大,因为您必须自己实际构建服务器,并解决任何库不兼容的问题。我们使用这种方法,只是将OSS Java EE部署到docker,当然只有一个应用程序。我不太关心AS运行多个应用程序的能力,但Java EE编程模型很好,可以放弃(坦率地说,没有必要放弃)我们使用这种方法,除了我们将OSS Java EE部署到docker,当然只有一个应用程序。我不太关心AS运行多个应用程序的能力,但JavaEE编程模型是最好放弃的(坦率地说,没有必要放弃)