Infinispan - 我可以为服务器中的每个 Web 应用程序创建 DefaultCacheManager

问题描述

我不明白 DefaultCacheManager 的 Java doc 的以下语句。它说

CacheManager 是重量级对象,我们预计每个 JVM 使用的 CacheManager 不会超过一个

  • 我可以为服务器中的每个 Web 应用程序以编程方式创建 DefaultCacheManager 吗?例如,我有两个 Web 应用程序,A 和 B。它们在 JBoss AS(仅限独立)中运行。每个 Web 应用程序(A 和 B)都会创建自己的 DefaultCacheManager 对象。

解决方法

是的,您可以创建更多缓存管理器。此处的重量级一词意味着缓存管理器包含线程池、JGroups 通道(即消耗的端口)等,因此您不应创建太多这些。

在具有深度集成的应用服务器中,情况可能会有所不同 - 一些资源可以在那里共享。查看 Infinispan 子系统 - 缓存管理器然后映射到 cache-container。配置中有多个缓存容器完全没问题。

在应用服务器中,应用不应该创建缓存管理器;这些应该只注入(例如通过 CDI)到您的网络应用程序。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...