我想知道应用程序服务器之间的会话复制是否是官方 EE 标准的一部分?我找不到任何关于它的信息,所以提供官方文档的链接将不胜感激。
2 回答
答案并不完全正确。请参阅,在最新版本的JavaEE 规范中(在 Servlet 3.1 部分下),规范中多次提到了可分发 Web 应用程序:
Servlet 规范定义了可分发的 Web 应用程序。为了支持可分发的 Java EE 应用程序,本规范添加了以下要求...
Web 容器必须支持 Java EE 可分发 Web 应用程序,使用 setAttribute 或 putValue 方法将以下任何类型的对象(当 Java EE 产品支持时)放入 javax.servlet.http.HttpSession对象:
- java.io.Serializable
- javax.ejb.EJBObject
- javax.ejb.EJBHome
- javax.ejb.EJBLocalObject ...
它还继续说
支持多 VM 操作的 Web 容器必须确保在将会话从一个 VM 移动到另一个 VM 时,在目标 VM 上准确地重新创建所有受支持类型的对象。
虽然它可能有点模棱两可,但我可以从以上所有内容中推断出可分发的 Web 应用程序(阅读:分布式会话对象/会话复制)是规范的一部分
不,据我所知,会话复制不是官方 Java EE 的一部分。在 Sevlet 或 JSP 规范中没有关于会话复制要求的字眼。您可能已经认证了 Java EE 服务器,它可以是独立的,然后它根本不需要会话复制。然而,所有提供集群解决方案的供应商都实现了这种机制,尽管实现细节可能会有所不同(例如,通过数据库进行复制、内存到内存通信等)