如何在 wildfly 中群集应用程序范围状态?



我想聚类一个保存在应用程序级范围内的映射。

第一个想法是使用@Singleton@Clustered豆,并带有保存我的数据的字段。
这似乎不起作用,我的猜测是它从未实施过

这篇文章提出了实现集群单例的方法,但它们看起来很复杂。

除了手动更新数据库表之外,我看到的唯一选择是使用复制的缓存。

我的问题是:是否建议声明并使用无限缓存(像这样(来解决此问题?
如果是,我应该使用哪些设置来避免脏读?
在野蝇-18时代,这个相对简单的问题还有其他选择吗?

正如你提到的一个集群,你需要使用standalone-full-ha.xml

编辑文件并添加以下配置

<cache-container module="org.infinispan.extension" name="infinispan_container" default-cache="default">
<transport lock-timeout="60000"/>
<global-state/>
<distributed-cache name="default"/>
<local-cache name="localCache"/>
<replicated-cache name="replicatedCache"/>
</cache-container>

您的应用程序有不同的缓存可用,如果您希望使用复制的缓存,则可以将其注入您的应用程序中

@Resource(lookup = "java:jboss/datagrid-infinispan/container/infinispan_container/cache/replicatedCache")
Cache cache;

Diego 的响应假定您使用的是 Infinispan 分发的 WF 模块(请注意 datagrid-infinispan 命名空间(。

要使用在 WF 的 Infinispan子系统中定义的任意 Infinispan 高速缓存,请使用格式为java:jboss/infinispan/cache/your-container-name/your-cache-name的 jndi 名称

。例如

@Resource(lookup="java:jboss/infinispan/cache/foo/bar")
private Cache<K, V> cache;

WF 将管理缓存的生命周期,确保在必要时启动/停止缓存。

最新更新