EmbeddedHazelcastCacheManager

文档中心 › 组件索引 › EmbeddedHazelcastCacheManager

EmbeddedHazelcastCacheManager Controller Service

类型全限定名:cn.org.acal.lynxus.hazelcast.services.cachemanager.EmbeddedHazelcastCacheManager

所属 Bundle:cn.org.acal.lynxus:lynxus-hazelcast-services-nar:2.11.8

描述

运行嵌入式 Hazelcast 并提供其支持的缓存实例的服务。 服务器不要求身份验证,建议在安全网络内运行。

标签

hazelcastcache

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
Hazelcast Cluster NamelynxusHazelcast 集群的名称。
支持表达式语言:是(仅使用环境/系统变量求值)
Hazelcast Port5701Hazelcast 实例使用的端口。
支持表达式语言:是(仅使用环境/系统变量求值)
Hazelcast Clustering Strategynone
  • 无 — 不提供高可用性或数据复制,每个节点只能访问本地存储的数据。
  • 所有节点 — 基于 Lynxus 集群创建 Hazelcast 集群:期望每个 Lynxus 节点都在 Hazelcast Port 属性指定的相同端口上运行 Hazelcast 实例。无需显式列出实例。
  • 显式指定 — 使用显式的 Hazelcast 实例列表,使用列出的实例创建集群。这提供了更大的控制能力,可以仅将某些节点用作 Hazelcast 服务器。 Hazelcast 实例列表可以在属性 "Hazelcast Instances" 中设置。列表中的主机必须位于 Lynxus 集群内,不允许使用外部 Hazelcast。 未列出的 Lynxus 节点将作为客户端加入 Hazelcast 集群。
指定应使用什么策略创建 Hazelcast 集群。
Hazelcast Instances仅与「Explicit」聚类策略一起使用!应作为 Hazelcast 集群一部分的 Lynxus 实例主机名列表。主机名用逗号分隔。「Hazelcas
支持表达式语言:是(仅使用环境/系统变量求值)

状态管理

该组件不存储状态。

受限 (Restricted)

该组件不受限。

提供的 Service API

  • HazelcastCacheManager (cn.org.acal.lynxus-lynxus-hazelcast-services-api-nar-2.11.8)

详细说明

EmbeddedHazelcastCacheManager

该服务启动并管理一个嵌入式 Hazelcast 实例。缓存管理器可以直接访问该实例——以及其中存储的 数据。不过,该实例会开放一个端口供潜在客户端加入,这一点无法 阻止。注意,这可能使实例暴露给恶意客户端加入。

通过相应地设置属性,可以在同一主机上运行多个独立的 Hazelcast 实例(无论是通过 EmbeddedHazelcastCacheManager 还是外部方式)而互不干扰。如果 没有其他实例,直接使用默认的集群名称和端口号即可。

该服务支持多种搭建 Hazelcast 集群的方式。这由名为 "Hazelcast Clustering Strategy" 的属性控制。可以使用以下策略:

None

这是默认值。用于不需要在节点之间共享数据的场景。使用该值时, 集群中的每个 Lynxus 节点(如果已集群化)只连接其本地的 Hazelcast 服务器。各 Hazelcast 服务器不会组成集群。

All Nodes

只能在集群化节点中使用。使用该策略会形成一个由所有 Lynxus 节点的嵌入式实例组成的单一 Hazelcast 集群。该策略要求所有 Hazelcast 服务器监听相同的端口。如果端口号不同(例如基于 表达式),会阻止集群的形成。

该 Controller Service 启用时会自动从 Lynxus 集群本身收集主机列表。此时不要求所有节点都已成功加入, 但加入必须已经发起。如果在 Lynxus 实例启动时启用该 Controller Service,在节点被视为已集群化之前,服务的启用会被 阻止。

Hazelcast 可以接受稍后加入的节点。由于新节点拥有预期实例的 完整列表——包括已存在的实例和它自己——Hazelcast 能够达到预期状态。注意:这可能需要相当长的时间。

Explicit

只能在集群化节点中使用。Explicit 集群策略允许对 Hazelcast 集群成员进行更多控制。与 All Nodes 集群策略类似,该策略也使用 Hazelcast 服务器列表,但实例发现不是自动的。

该策略使用名为 "Hazelcast Instances" 的属性确定 Hazelcast 集群的成员。该主机列表必须包含预期成为集群一部分的 所有实例。实例列表只能包含属于 Lynxus 集群的主机。"Hazelcast Port" 中指定的端口会用作 Hazelcast 服务器端口。

如果当前节点不在实例列表中,服务会启动一个 Hazelcast 客户端。客户端随后会连接到实例列表中指定的 Hazelcast 地址。服务的使用者不应察觉到功能上有任何差异。