跳到主要内容

8. Infinispan 支持

支持 Infinispan 缓存。Micronaut 将创建一个 Infinispan 客户端实例,以使用 HotRod 协议连接到现有的 Infinispan 服务器。

注意

此模块是使用 Infinispan {infinispanVersion} 构建和测试的

要开始,请添加 Micronaut Infinispan 模块作为依赖:

implementation("io.micronaut.cache:micronaut-cache-infinispan:3.5.0")

默认情况下,Micronaut 将在 127.0.0.1:11222 上设置 RemoteCacheManager。要定义自定义地址,请执行以下操作:

infinispan:
client:
hotrod:
server:
host: infinispan.example.com
port: 10222

默认情况下,Micronaut 将尝试从 classpath 读取 /hotrod-client.properties 文件,如果找到,将使用该文件。该文件应为 Infinispan 配置格式,例如:

# Hot Rod client configuration
infinispan.client.hotrod.server_list = 127.0.0.1:11222
infinispan.client.hotrod.marshaller = org.infinispan.commons.marshall.ProtoStreamMarshaller
infinispan.client.hotrod.async_executor_factory = org.infinispan.client.hotrod.impl.async.DefaultAsyncExecutorFactory
infinispan.client.hotrod.default_executor_factory.pool_size = 1
infinispan.client.hotrod.hash_function_impl.2 = org.infinispan.client.hotrod.impl.consistenthash.ConsistentHashV2
infinispan.client.hotrod.tcp_no_delay = true
infinispan.client.hotrod.tcp_keep_alive = false
infinispan.client.hotrod.request_balancing_strategy = org.infinispan.client.hotrod.impl.transport.tcp.RoundRobinBalancingStrategy
infinispan.client.hotrod.key_size_estimate = 64
infinispan.client.hotrod.value_size_estimate = 512
infinispan.client.hotrod.force_return_values = false

## Connection pooling configuration
maxActive = -1
maxIdle = -1
whenExhaustedAction = 1
minEvictableIdleTimeMillis=300000
minIdle = 1

要从不同的 classpath 位置读取此文件,请执行以下操作:

infinispan:
client:
hotrod:
config-file: classpath:my-infinispan.properties

你可以使用 Infinispan 的属性文件和 Micronaut 配置属性。后者将补充/覆盖前者的值。

表 1. InfinispanHotRodClientConfiguration 的配置属性

属性类型描述
infinispan.client.hotrod.add-clusterjava.lang.String
infinispan.client.hotrod.add-serversjava.lang.String
infinispan.client.hotrod.balancing-strategyjava.lang.String
infinispan.client.hotrod.connection-timeoutint
infinispan.client.hotrod.force-return-valuesboolean
infinispan.client.hotrod.marshallerjava.lang.String
infinispan.client.hotrod.add-context-initializerjava.lang.String
infinispan.client.hotrod.socket-timeoutint
infinispan.client.hotrod.tcp-no-delayboolean
infinispan.client.hotrod.tcp-keep-aliveboolean
infinispan.client.hotrod.max-retriesint
infinispan.client.hotrod.batch-sizeint
infinispan.client.hotrod.server.hostjava.lang.String
infinispan.client.hotrod.server.portint
infinispan.client.hotrod.statistics.enabledboolean
infinispan.client.hotrod.statistics.jmx-enabledboolean
infinispan.client.hotrod.statistics.jmx-domainjava.lang.String
infinispan.client.hotrod.statistics.jmx-namejava.lang.String
infinispan.client.hotrod.connection-pool.max-activeint
infinispan.client.hotrod.connection-pool.max-waitlong
infinispan.client.hotrod.connection-pool.min-idleint
infinispan.client.hotrod.connection-pool.min-evictable-idle-timelong
infinispan.client.hotrod.connection-pool.max-pending-requestsint
infinispan.client.hotrod.async-executor-factory.factory-classjava.lang.Class
infinispan.client.hotrod.security.authentication.enabledboolean
infinispan.client.hotrod.security.authentication.sasl-mechanismjava.lang.String
infinispan.client.hotrod.security.authentication.server-namejava.lang.String
infinispan.client.hotrod.security.authentication.usernamejava.lang.String
infinispan.client.hotrod.security.authentication.passwordjava.lang.String
infinispan.client.hotrod.security.authentication.realmjava.lang.String
infinispan.client.hotrod.security.ssl.enabledboolean
infinispan.client.hotrod.security.ssl.key-store-file-namejava.lang.String
infinispan.client.hotrod.security.ssl.key-store-typejava.lang.String
infinispan.client.hotrod.security.ssl.key-store-passwordchar
infinispan.client.hotrod.security.ssl.key-aliasjava.lang.String
infinispan.client.hotrod.security.ssl.trust-store-file-namejava.lang.String
infinispan.client.hotrod.security.ssl.trust-store-typejava.lang.String
infinispan.client.hotrod.security.ssl.trust-store-passwordchar
infinispan.client.hotrod.security.ssl.sni-host-namejava.lang.String
infinispan.client.hotrod.security.ssl.protocoljava.lang.String
infinispan.client.hotrod.config-filejava.lang.String配置文件位置

要禁用 Infinispan,则:

infinispan:
enabled: false

英文链接