JSF2.0——跨集群共享或主OmniFaces组合资源缓存
JSF中有没有一种方法可以跨集群使用组合资源?基本上,我正在寻找一种解决方案,集群中引入资源的第一台服务器可以将其同步到其他服务器的资源缓存。这是不可能的,因为组合资源的唯一ID是基于MD5生成的,MD5是一种不可逆的单向加密。因此,如果资源是在服务器X上创建并在服务器Y上请求的,那么服务器Y将无法基于唯一ID解析缓存中的资源 自OmniFaces 1.2以来,通过将MD5方法替换为ZLIB和Base64的组合,这使得它变得简短且可逆,从而解决了这一问题。服务器Y现在将能够根据ID解析资源本身,然后将其存储在缓存中JSF2.0——跨集群共享或主OmniFaces组合资源缓存,jsf,jsf-2,resources,cluster-computing,omnifaces,Jsf,Jsf 2,Resources,Cluster Computing,Omnifaces,JSF中有没有一种方法可以跨集群使用组合资源?基本上,我正在寻找一种解决方案,集群中引入资源的第一台服务器可以将其同步到其他服务器的资源缓存。这是不可能的,因为组合资源的唯一ID是基于MD5生成的,MD5是一种不可逆的单向加密。因此,如果资源是在服务器X上创建并在服务器Y上请求的,那么服务器Y将无法基于唯一ID解析缓存中的资源 自OmniFaces 1.2以来,通过将MD5方法替换为ZLIB和Base64的组合,这使得它变得简短且可逆,从而解决了这一问题。服务器Y现在将能够根据ID解析资源本身,
顺便说一下,Base64编码方法还有一个附加步骤,即用
~
替换/
、+
和=
字符,-
和
使其能够在不存在任何可能对平台敏感的URL编码麻烦的情况下通过URL。这是不可能的,因为组合资源的唯一ID是基于MD5生成的,MD5是一种不可逆的单向加密。因此,如果资源是在服务器X上创建并在服务器Y上请求的,那么服务器Y将无法基于唯一ID解析缓存中的资源
自OmniFaces 1.2以来,通过将MD5方法替换为ZLIB和Base64的组合,这使得它变得简短且可逆,从而解决了这一问题。服务器Y现在将能够根据ID解析资源本身,然后将其存储在缓存中
顺便说一下,Base64编码方法还有一个附加步骤,即用
~
替换/
、+
和=
字符,-
和
使其能够在不存在任何可能对平台敏感的URL编码麻烦的情况下通过URL传递。您指的是什么资源?@Adrian:/resources
文件夹中由ResourceHandler
处理的文件。为什么只需要缓存同步静态资源得到缓存?在Omnifaces的情况下,CombinedResourceHandler在呈现包含h:outputScript或h:outputStylesheet资源的页面时,将组合CSS/JS资源引入资源缓存。因此,如果对xhtml页面的请求进入一台服务器,该服务器将处理合并的资源并将其放入资源缓存中,但是如果对资源本身的http请求进入另一台服务器,则不一定可用,因此我的问题是。我做了一般性的解释,因为我认为可能会有其他应用程序用于此。你指的是什么类型的资源?@Adrian:resources文件夹中的文件由ResourceHandler处理。在Omnifaces的情况下,为什么需要缓存同步,因为只有静态资源会被缓存,CombinedResourceHandler在呈现包含h:outputScript或h:outputStylesheet资源的页面时,将组合CSS/JS资源引入资源缓存。因此,如果对xhtml页面的请求进入一台服务器,该服务器将处理合并的资源并将其放入资源缓存中,但是如果对资源本身的http请求进入另一台服务器,则不一定可用,因此我的问题是。我把它做得很一般,因为我认为可能会有其他的应用程序。Omnifaces变得非常棒。你真的让我的软件堆栈变得更好了。我永远都很感激,Omnifaces真是太棒了。你真的让我的软件堆栈变得更好了。我永远感激你。