2

JSF 中有没有一种方法可以跨集群使用组合资源?基本上我正在寻找一个解决方案,其中集群中引入资源的第一台服务器可以将其同步到其他服务器的资源缓存。

4

1 回答 1

4

这是不可能的,因为组合资源的唯一 ID 是基于 MD5 生成的,MD5 是一种不可逆的单向加密。因此,如果资源是在服务器 X 上创建并在服务器 Y 上请求的,那么服务器 Y 将无法根据唯一 ID 从缓存中解析资源。

从 OmniFaces 1.2 开始,通过将 MD5 方法替换为 ZLIB 和 Base64 的组合来解决这个问题,这使得它变得短且可逆。服务器 Y 现在将能够根据 ID 自行解析资源,然后将其存储在缓存中。

顺便说一句,Base64 编码方法还有一个额外的步骤,即用 , 替换/,+=字符~-_使其成为URL 安全的,这样它就可以通过 URL 传递任何可能与平台无关的 URL 编码麻烦。

于 2012-07-26T14:45:01.937 回答