跳到主要内容

7. Hazelcast 支持

支持 Hazelcast 缓存。Micronaut 将创建一个 Hazelcast 客户端实例,以连接到现有的 Hazelcastserver 集群,或创建一个独立的嵌入式 Hazelccast 成员实例。

注意

此模块使用 Hazelcast {hazelcastVersion}进行构建和测试

添加 Micronaut Hazelcast 模块作为依赖:

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

你也可以使用 cli 功能将 Hazelcast 模块添加到你的项目中,如下所示:

使用 Hazelcast 模块创建 Micronaut 应用程序

$ mn create-app hello-world -f hazelcast

使用 Hazelcast 的最低配置是简单地声明 Hazelcast:使用 Hazelcost 集群地址的网络配置(下面的示例)。

hazelcast:
network:
addresses: ['121.0.0.1:5701']

如果你在工作目录或 classpath 中提供 Hazelcast 配置文件(例如:hazelcast.xmlhazelcast.ymlhazelcast-client.xmlHazelcast-client.yml),Micronaut 将使用此配置文件来配置 Hazelccast 实例。

当使用 @Cacheable 和其他缓存注解时,Micronaut 将创建 Hazelcast 客户端,并使用服务器上的底层 IMap 缓存数据存储。

可配置选项的完整列表如下。

表 1. HazelcastClientConfiguration 的配置属性

属性类型描述
hazelcast.client.propertiesjava.util.Properties
hazelcast.client.instance-namejava.lang.String
hazelcast.client.cluster-namejava.lang.String
hazelcast.client.labelsjava.util.Set
hazelcast.client.user-contextjava.util.concurrent.ConcurrentMap
hazelcast.client.network.smart-routingboolean
hazelcast.client.network.connection-timeoutint
hazelcast.client.network.addressesjava.util.List
hazelcast.client.network.redo-operationboolean
hazelcast.client.network.outbound-port-definitionsjava.util.Collection
hazelcast.client.network.outbound-portsjava.util.Collection
hazelcast.client.connection-retry.initial-backoff-millisint
hazelcast.client.connection-retry.max-backoff-millisint
hazelcast.client.network.socket.tcp-no-delayboolean
hazelcast.client.network.socket.keep-aliveboolean
hazelcast.client.network.socket.reuse-addressboolean
hazelcast.client.network.socket.linger-secondsint
hazelcast.client.network.socket.buffer-sizeint

对于不在上述列表中的设置,可以为 HazelcastClientConfigurationHazelcastMemberConfiguration 注册 BeanCreatedEventListener。监听器将允许直接在配置实例上设置所有属性。

@Singleton
public class HazelcastAdditionalSettings implements BeanCreatedEventListener<HazelcastClientConfiguration> {

@Override
public HazelcastClientConfiguration onCreated(BeanCreatedEvent<HazelcastClientConfiguration> event) {
HazelcastClientConfiguration configuration = event.getBean();
// Set anything on the configuration
return configuration;
}
}

或者,HazelcastClientConfigurationHazelcastMemberConfiguration bean 可以替换为你自己的实现。

要禁用 Hazelcast,则:

hazelcast:
enabled: false

英文链接