4.2. Infinispan 服务器配置更改
在考虑以下方面时,配置自定义有状态会话 Bean (SFSB)缓存以传递 Red Hat JBoss Enterprise Application Platform 7.1 及更高版本中:
- 弃用 idle-timeout 属性
- 实施延迟传递
- 确定集群名称
- 适当的驱除和过期配置
- 修改缓存容器传输协议以提高性能。
通过遵循这些注意事项,您可以优化 SFSB 缓存配置,以便在 JBoss EAP 7.1 及更高版本中改进传递。
4.2.1. 为传递配置自定义有状态会话 Bean 缓存 复制链接链接已复制到粘贴板!
在 JBoss EAP 7.1 及更新的版本中,启用了 passivation 的自定义有状态会话 Bean (SFSB)缓存已更改。当使用 passivation 配置 SFSB 缓存时,请考虑以下密钥更改:
- 弃用 idle-timeout 属性
- 从 eager 变为 lazy passivation
- 确定集群名称
- 在 Jakarta Enterprise Beans 缓存中配置驱除和过期
在配置自定义 SFSB 缓存以传递 JBoss EAP 7.1 及更新的版本时,请考虑以下限制:
idle-timeout属性(在ejb3子系统的infinispanpassivation-store中配置)已在 JBoss EAP 7.1 及更高版本中弃用。JBoss EAP 7.1 及更高版本仅支持 lazy passivation,这在达到max-size阈值时发生。注意这些版本中不再支持通过 idle-timeout 的 eager 传递。
-
在 JBoss EAP 7.1 及更高版本中,由 Jakarta Enterprise Beans 客户端使用的集群名称由通道的实际集群名称决定,如
jgroups子系统中所配置。 -
JBoss EAP 7.1 及更高版本仍允许您设置
max-size属性来控制传递阈值。
4.2.2. Infinispan 缓存容器传输更改 复制链接链接已复制到粘贴板!
JBoss EAP 7.0 及更新版本之间的行为变化需要在批处理模式中执行对缓存容器传输协议的更新,或使用特殊的标头。此更改也会影响用于管理 JBoss EAP 服务器的工具。
以下是用于在 JBoss EAP 7.0 中配置缓存容器传输协议的管理 CLI 命令示例。
/subsystem=infinispan/cache-container=my:add()
/subsystem=infinispan/cache-container=my/transport=jgroups:add()
/subsystem=infinispan/cache-container=my/invalidation-cache=mycache:add(mode=SYNC)
以下是在 JBoss EAP 7.1 中执行相同配置所需的管理 CLI 命令示例。请注意,命令是以批处理模式执行的。
batch
/subsystem=infinispan/cache-container=my:add()
/subsystem=infinispan/cache-container=my/transport=jgroups:add()
/subsystem=infinispan/cache-container=my/invalidation-cache=mycache:add(mode=SYNC)
run-batch
如果您不希望使用批处理模式,您可以在定义传输时指定操作标头 allow-resource-service-restart=true。
如果您使用脚本更新缓存容器传输协议,请务必检查它们并添加批处理模式。
4.2.3. 从版本 8.1 及之后的版本中的 EJB 子系统配置更改 复制链接链接已复制到粘贴板!
JBoss EAP 8.1 引入了对可分布式有状态会话 Bean (SFSB)的 Enterprisexdg (EJB)子系统配置的更改,包括新的子系统和更新多个资源。JBoss EAP 6 和 7 中使用的多个资源也已被弃用。这些更改可启用服务器配置迁移,以确保您的应用程序与将来的主发行版本兼容。
JBoss EAP 8.1 将 JBoss EAP 6 和 7 中使用已弃用的资源替换为两个新资源和 distributable-ejb 子系统,用于配置 SFSB 缓存分布。下表概述了已弃用资源以及替换它们的新资源。
| 弃用的资源 | 新的非分布式 SFSB 缓存 | 新的 distributable SFSB 缓存 |
|---|---|---|
|
|
|
|
|
| 不适用 |
|
Non-distributable SFSB 缓存, /subsystem=ejb3/simple-cache 等同于 SFSB 缓存 /subsystem=ejb3/cache,在 JBoss EAP 8 中使用,没有定义 passivation 存储。
distributable SFSB 缓存, /subsystem=ejb3/distributable-cache 包含一个可选 bean-management 属性,它引用 distributable-ejb 子系统中的对应资源。如果没有定义资源,则默认为 distributable-ejb 子系统中的 bean-management 资源。
考虑将服务器配置迁移到 JBoss EAP 8.1 中的更新方法。虽然当前的发行版本将继续与已弃用资源搭配使用,但在以后的版本中可能不会在以后的版本中出现。
JBoss EAP 8 和首选 JBoss EAP 8.1 配置之间的比较示例如下:
- JBoss EAP 8 配置
/subsystem=ejb3/cache=example-simple-cache:add()
/subsystem=ejb3/passivation-store=infinispan:add(cache-container=ejb, bean-cache=default, max-size=1024)
/subsystem=ejb3/cache=example-distributed-cache:add(passivation-store=infinispan)
- 首选 JBoss EAP 8.1 配置
/subsystem=ejb3/simple-cache=example-simple-cache:add()
/subsystem=distributable-ejb=example-distributed-cache/infinispan-bean-management=example-bean-cache:add(cache-container=ejb, cache=default, max-active-beans=1024)
/subsystem=ejb3/distributable-cache=example-distributed-cache:add(bean-management=example-bean-cache)
采用首选 JBoss EAP 8.1 配置可确保您的服务器与最新版本和将来的主发行版本兼容。您还将受益于改进的资源和子系统,以用于可分布式 SFSB。