Data Grid Library 模式
Red Hat Data Grid 复制链接链接已复制到粘贴板!
Data Grid 是一个高性能分布式内存数据存储。
- 无架构数据结构
- 将不同对象存储为键值对的灵活性。
- 基于网格的数据存储
- 旨在在集群中分发和复制数据。
- 弹性扩展
- 动态调整节点数量,以便在不中断服务的情况下满足需求。
- 数据互操作性
- 从不同端点在网格中存储、检索和查询数据。
Data Grid 文档 复制链接链接已复制到粘贴板!
红帽客户门户网站中提供了 Data Grid 的文档。
Data Grid 下载 复制链接链接已复制到粘贴板!
访问红帽客户门户上的 Data Grid 软件下载。
您必须有一个红帽帐户才能访问和下载数据中心软件。
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
第 1 章 配置 Data Grid Maven 存储库 复制链接链接已复制到粘贴板!
Data Grid Java 发行版可从 Maven 获取。
您可以从客户门户网站下载 Data Grid Maven 存储库,或者从公共 Red Hat Enterprise Maven 存储库拉取 Data Grid 依赖项。
1.1. 下载 Data Grid Maven 存储库 复制链接链接已复制到粘贴板!
如果您不想使用公共 Red Hat Enterprise Maven 存储库,将 Data Grid Maven 存储库下载并安装到本地文件系统、Apache HTTP 服务器或 Maven 存储库管理器。
流程
- 登录到红帽客户门户。
- 导航到 Data Grid 的软件下载。
- 下载 Red Hat Data Grid 8.1 Maven 存储库。
- 将存档的 Maven 存储库提取到本地文件系统。
-
打开
README.md文件,并按照适当的安装说明进行操作。
1.2. 添加 Red Hat Maven 存储库 复制链接链接已复制到粘贴板!
在您的 Maven 构建环境中包括红帽 GA 存储库,以获取 Data Grid 工件和依赖项。
流程
将 Red Hat GA 存储库添加到 Maven 设置文件中,通常为
~/.m2/settings.xml,或者直接在项目的pom.xml文件中。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. 配置数据网格 POM 复制链接链接已复制到粘贴板!
Maven 使用名为 Project Object Model (POM)文件的配置文件来定义项目并管理构建。POM 文件采用 XML 格式,描述生成的项目打包和输出的模块和组件依赖项、构建顺序和目标。
流程
-
打开您的项目
pom.xml进行编辑。 -
使用正确的 Data Grid 版本定义
version.infinispan属性。 在
dependencyManagement部分中包含infinispan-bom。Bill Of Materials (BOM)控制依赖项版本,从而避免了版本冲突,这意味着您不需要为添加到项目的每个 Data Grid 工件设置版本。
-
保存并关闭
pom.xml。
以下示例显示了 Data Grid 版本和 BOM:
后续步骤
根据需要,将 Data Grid 工件作为依赖项添加到 pom.xml 中。
第 2 章 在库模式中安装 Data Grid 复制链接链接已复制到粘贴板!
添加 Data Grid 作为项目中的嵌入式库。
流程
-
将
infinispan-core工件作为依赖项添加到pom.xml中,如下所示:
第 3 章 将 Data Grid 作为嵌入式库运行 复制链接链接已复制到粘贴板!
了解如何将 Data Grid 作为嵌入式数据存储在项目中运行。
流程
- 初始化默认缓存管理器并添加缓存定义,如下所示:
GlobalConfigurationBuilder global = GlobalConfigurationBuilder.defaultClusteredBuilder();
DefaultCacheManager cacheManager = new DefaultCacheManager(global.build());
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.clustering().cacheMode(CacheMode.DIST_SYNC);
cacheManager.administration().withFlags(CacheContainerAdmin.AdminFlag.VOLATILE).getOrCreateCache("myCache", builder.build());
GlobalConfigurationBuilder global = GlobalConfigurationBuilder.defaultClusteredBuilder();
DefaultCacheManager cacheManager = new DefaultCacheManager(global.build());
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.clustering().cacheMode(CacheMode.DIST_SYNC);
cacheManager.administration().withFlags(CacheContainerAdmin.AdminFlag.VOLATILE).getOrCreateCache("myCache", builder.build());
前面的代码初始化默认的集群缓存管理器。缓存管理器包含您的缓存定义和控制缓存生命周期。
Data Grid 不提供默认的缓存定义,因此在初始化默认缓存管理器后,您需要至少添加一个缓存实例。本例使用 ConfigurationBuilder 类来创建使用分布式同步缓存模式的缓存定义。然后,您可以调用 getOrCreateCache () 方法,该方法在集群的所有节点上创建一个名为"myCache"的缓存,如果已存在,则返回它。
后续步骤
现在,您已创建了带有缓存运行的缓存管理器,您可以添加更多缓存定义,将一些数据放在缓存中,或者根据需要配置 Data Grid。
第 4 章 设置 Data Grid 集群 复制链接链接已复制到粘贴板!
Data Grid 需要传输层,以便节点可以自动加入和离开集群。传输层还可让数据在网络间复制或分发数据,并执行操作,如重新平衡和状态传输。
4.1. 默认堆栈入门 复制链接链接已复制到粘贴板!
Data Grid 使用 JGroups 协议堆栈,以便节点可以在专用集群通道上发送其他消息。
Data Grid 为 UDP 和 TCP 协议提供预配置的 JGroups 堆栈。您可以使用这些默认堆栈作为构建自定义集群传输配置的起点,该配置根据您的网络要求进行了优化。
流程
-
在
infinispan-core-11.0.9.Final。-redhat-00001.jar文件的default-configs目录中找到默认的 JGroups 堆栈 default-jgroups-2022-3.xml 执行以下操作之一:
使用
infinispan.xml文件中的stack属性。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
default-jgroups-udp.xml用于集群传输。
使用
addProperty ()方法设置 JGroups 堆栈文件:GlobalConfiguration globalConfig = new GlobalConfigurationBuilder().transport() .defaultTransport() .clusterName("qa-cluster") .addProperty("configurationFile", "default-jgroups-udp.xml") .build();GlobalConfiguration globalConfig = new GlobalConfigurationBuilder().transport() .defaultTransport() .clusterName("qa-cluster") .addProperty("configurationFile", "default-jgroups-udp.xml")1 .build();Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
default-jgroups-udp.xml堆栈用于集群传输。
Data Grid 记录以下信息以指示它使用的堆栈:
[org.infinispan.CLUSTER] ISPN000078: Starting JGroups channel cluster with stack udp
[org.infinispan.CLUSTER] ISPN000078: Starting JGroups channel cluster with stack udp
参考
- Data Grid 8.x 的 JGroups 集群传输配置 (红帽知识库文章)
4.1.1. 默认 JGroups Stacks 复制链接链接已复制到粘贴板!
了解配置集群传输的默认 JGroups 堆栈。
| 文件名 | 堆栈名称 | 描述 |
|---|---|---|
|
|
| 使用 UDP 进行传输和 UDP 多播进行发现。适用于较大的集群(超过 100 个节点),或者使用复制缓存或无效模式。最小化打开的插槽数量。 |
|
|
|
使用 TCP 传输和 |
|
|
|
使用 TCP 进行传输, |
|
|
|
使用 TCP 进行传输, |
|
|
|
使用 TCP 进行传输, |
|
|
|
使用 TCP 进行传输, |
参考
4.1.2. 集群流量的 TCP 和 UDP 端口 复制链接链接已复制到粘贴板!
Data Grid 对集群传输信息使用以下端口:
| 默认端口 | 协议 | 描述 |
|---|---|---|
|
| TCP/UDP | JGroups 集群绑定端口 |
|
| UDP | JGroups 多播 |
跨站点复制
Data Grid 为 JGroups RELAY2 协议使用以下端口:
7900- 对于在 OpenShift 上运行的 Data Grid 集群。
7800- 如果将 UDP 用于节点间的流量,使用 TCP 作为集群之间的流量。
7801- 如果将 TCP 用于节点和 TCP 间的流量,用于集群之间的流量。
4.2. 自定义 JGroups 堆栈 复制链接链接已复制到粘贴板!
调整和调优属性,以创建适合您的网络要求的集群传输配置。
Data Grid 提供可让您扩展默认 JGroups 堆栈以方便配置的属性。您可以在合并、删除和替换其他属性时从默认堆栈继承属性。
流程
在
infinispan.xml文件中创建一个新的 JGroups 堆栈声明。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 创建名为"my-stack"的自定义 JGroups 堆栈。
添加
extends属性,并指定 JGroups 堆栈来继承属性。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 从默认的 TCP 堆栈继承。
-
使用
stack.combine属性修改继承堆栈中配置的协议的属性。 使用
stack.position属性定义自定义堆栈的位置。例如,您可以使用 Gossip 路由器和使用默认 TCP 堆栈的对称加密来评估,如下所示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定堆栈名称,作为
传输配置中stack属性的值。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 配置 Data Grid,以将 "my-stack" 用于集群传输。
检查 Data Grid 日志,以确保它使用堆栈。
[org.infinispan.CLUSTER] ISPN000078: Starting JGroups channel cluster with stack my-stack
[org.infinispan.CLUSTER] ISPN000078: Starting JGroups channel cluster with stack my-stackCopy to Clipboard Copied! Toggle word wrap Toggle overflow
参考
- Data Grid 8.x 的 JGroups 集群传输配置 (红帽知识库文章)
4.2.1. 继承属性 复制链接链接已复制到粘贴板!
当您扩展 JGroups 堆栈时,继承属性允许您调整您要扩展的堆栈中的协议和属性。
-
stack.position指定要修改的协议。 stack.combine使用以下值来扩展 JGroups 堆栈:Expand 值 描述 组合覆盖协议属性。
REPLACE替换协议。
INSERT_AFTER在另一个协议后将协议添加到堆栈中。不会影响指定为插入点的协议。
JGroups 堆栈中的协议会根据堆栈中的位置相互影响。例如,您应该在
SYM_ENCRYPT或ASYM_ENCRYPT协议后放置NAKACK2等协议,以便保护NAKACK2。删除从堆栈中删除协议。
4.3. 使用 JGroups 系统属性 复制链接链接已复制到粘贴板!
在启动时将系统属性传递给 Data Grid,以调优群集传输。
流程
-
根据需要,使用
-D<property-name>=<property-value> 参数设置 JGroups 系统属性。
例如,设置自定义绑定端口和 IP 地址,如下所示:
java -cp ... -Djgroups.bind.port=1234 -Djgroups.bind.address=192.0.2.0
$ java -cp ... -Djgroups.bind.port=1234 -Djgroups.bind.address=192.0.2.0
当您将 Data Grid 集群嵌入到集群红帽 JBoss EAP 应用程序中时,JGroups 系统属性可以相互冲突或覆盖。
例如,您没有为 Data Grid 集群或 Red Hat JBoss EAP 应用程序设置唯一的绑定地址。在这种情况下,Data Grid 和 Red Hat JBoss EAP 应用程序都使用 JGroups 默认属性,并尝试使用相同的绑定地址组成集群。
4.3.1. JGroups 堆栈的系统属性 复制链接链接已复制到粘贴板!
设置配置 JGroups 集群传输堆栈的系统属性。
| 系统属性 | 描述 | 默认值 | 必填/选填 |
|---|---|---|---|
|
| 集群传输的绑定地址。 |
| 选填 |
|
| 套接字的绑定端口。 |
| 选填 |
|
| 用于多播的 IP 地址,包括发现和集群间通信。IP 地址必须是适合 IP 多播的有效"类 D"地址。 |
| 选填 |
|
| 多播套接字的端口。 |
| 选填 |
|
| IP 多播数据包的时间到时间(TTL)。该值定义数据包在丢弃前可以进行的网络跃点数。 | 2 | 选填 |
|
| 线程池的最小线程数量。 | 0 | 选填 |
|
| 线程池的最大线程数。 | 200 | 选填 |
|
| 等待加入请求成功的最大毫秒数。 | 2000 | 选填 |
|
| 在记录线程转储前,线程池需要满的次数。 | 10000 | 选填 |
Amazon EC3
以下系统属性只适用于 default-jgroups-ec2.xml :
| 系统属性 | 描述 | 默认值 | 必填/选填 |
|---|---|---|---|
|
| S3 存储桶的 Amazon S3 访问密钥。 | 没有默认值。 | 选填 |
|
| 用于 S3 存储桶的 Amazon S3 secret 密钥。 | 没有默认值。 | 选填 |
|
| Amazon S3 存储桶的名称。名称必须存在,并且必须是唯一的。 | 没有默认值。 | 选填 |
Kubernetes
以下系统属性只适用于 default-jgroups-kubernetes.xml :
| 系统属性 | 描述 | 默认值 | 必填/选填 |
|---|---|---|---|
|
| 设置返回群集成员的 DNS 记录。 | 没有默认值。 | 必填 |
Google Cloud Platform
以下系统属性只适用于 default-jgroups-google.xml :
| 系统属性 | 描述 | 默认值 | 必填/选填 |
|---|---|---|---|
|
| Google Compute Engine 存储桶的名称。名称必须存在,并且必须是唯一的。 | 没有默认值。 | 必填 |
4.4. 使用 Inline JGroups Stacks 复制链接链接已复制到粘贴板!
您可以将完整的 JGroups 堆栈定义插入到 infinispan.xml 文件中。
4.5. 使用外部 JGroups 堆栈 复制链接链接已复制到粘贴板!
引用在 infinispan.xml 文件中定义自定义 JGroups 堆栈的外部文件。
4.6. 集群发现协议 复制链接链接已复制到粘贴板!
Data Grid 支持不同的协议,允许节点在网络上自动找到并形成集群。
Data Grid 可以使用两种发现机制:
- 在大多数网络上工作且不依赖于外部服务的通用发现协议。
-
依赖于外部服务的发现协议来存储和检索 Data Grid 集群的拓扑信息。
例如,DNS_PING 协议通过 DNS 服务器记录执行发现。
在托管平台上运行 Data Grid 需要使用针对各个云提供商实施的网络限制的发现机制。
参考
4.6.1. PING 复制链接链接已复制到粘贴板!
PING 或 UDPPING 是一种通用 JGroups 发现机制,它使用 UDP 协议的动态多播。
加入后,节点将 PING 请求发送到 IP 多播地址,以发现已在 Data Grid 集群中的其他节点。每个节点通过包含协调器节点地址的数据包以及自己的地址来响应 PING 请求。C=coordinator 的地址和 A=own 地址。如果没有节点响应 PING 请求,则加入节点会成为新集群中的协调节点。
PING 配置示例
<config> <PING num_discovery_runs="3"/> ... </config>
<config>
<PING num_discovery_runs="3"/>
...
</config>
参考
4.6.2. TCPPING 复制链接链接已复制到粘贴板!
TCPPING 是一种通用 JGroups 发现机制,它对群集成员使用静态地址列表。
使用 TCPPING 时,您可以手动将 Data Grid 集群中每个节点的 IP 地址或主机名指定为 JGroups 堆栈的一部分,而不是让节点动态发现其他节点。
TCPPING 配置示例
- 1
- 为了可靠发现,红帽建议
端口范围=0。
4.6.3. MPING 复制链接链接已复制到粘贴板!
MPING 使用 IP 多播来发现 Data Grid 集群的初始成员资格。
您可以使用 MPING 将 TCPPING 发现替换为 TCP 堆栈,并使用 multicasing 进行发现,而不使用初始主机的静态列表。但是,您还可以将 MPING 与 UDP 堆栈一起使用。
MPING 配置示例
4.6.4. TCPGOSSIP 复制链接链接已复制到粘贴板!
gossip 路由器在网络上提供一个中央位置,用于您的数据网格集群可以检索其他节点的地址。
您可以将 Gossip 路由器的地址(IP:PORT)注入 Data Grid 节点,如下所示:
-
将 address 作为系统属性传递给 JVM;例如,
-DGossipRouterAddress="10.10.2.4[12001]"。 - 在 JGroups 配置文件中引用该系统属性。
gossip 路由器配置示例
4.6.5. JDBC_PING 复制链接链接已复制到粘贴板!
JDBC_PING 使用共享数据库存储数据网格集群的信息。此协议支持任何可以使用 JDBC 连接的数据库。
节点将其 IP 地址写入共享数据库,以便加入节点可以在网络上找到 Data Grid 集群。当节点离开 Data Grid 集群时,它们会从共享数据库中删除其 IP 地址。
JDBC_PING 配置示例
将适当的 JDBC 驱动程序添加到类路径中,以便 Data Grid 可以使用 JDBC_PING。
4.6.6. DNS_PING 复制链接链接已复制到粘贴板!
JGroups DNS_PING 查询 DNS 服务器,以便在 Kubernetes 环境中发现数据网格群集成员,如 OKD 和 Red Hat OpenShift。
DNS_PING 配置示例
<config> <dns.DNS_PING dns_query="myservice.myproject.svc.cluster.local" /> ... </config>
<config>
<dns.DNS_PING dns_query="myservice.myproject.svc.cluster.local" />
...
</config>
参考
- JGroups DNS_PING
- 服务和 Pod 的 DNS (Kubernetes 文档来添加 DNS 条目)
4.7. 使用自定义 JChannels 复制链接链接已复制到粘贴板!
构建自定义 JGroups JChannels,如下例所示:
网格无法使用已经连接的自定义 JChannels。
4.8. 加密集群传输 复制链接链接已复制到粘贴板!
保护集群传输,以便节点与加密消息通信。您还可以配置 Data Grid 集群来执行证书身份验证,以便只有具有有效身份的节点才能加入。
4.8.1. Data Grid 集群安全性 复制链接链接已复制到粘贴板!
为了保护集群流量,您需要配置 Data Grid 节点,以使用 secret 密钥加密 JGroups 消息有效负载。
Data Grid 节点可以从以下方法获取 secret 密钥:
- 协调器节点(symmetric 加密)。
- 共享密钥存储(symmetric encryption)。
从协调器节点检索 secret 密钥
您可以通过在 Data Grid 配置中的 JGroups 堆栈中添加 ASYM_ENCRYPT 协议来配置非对称加密。这允许 Data Grid 集群生成和分发 secret 密钥。
在使用非对称加密时,您还应提供密钥存储,以便节点能够执行证书身份验证并安全地交换机密密钥。这可保护集群不受中间人(MitM)攻击的影响。
非对称加密保护集群流量,如下所示:
- Data Grid 集群中的第一个节点(coordinator 节点)会生成一个 secret 密钥。
- 加入节点使用协调器执行证书身份验证,以互相验证身份。
- 加入的节点从 coordinator 节点请求 secret 密钥。该请求包含加入节点的公钥。
- 协调器节点使用公钥加密 secret 密钥,并将其返回到加入节点。
- 加入节点解密并安装 secret 密钥。
- 节点加入集群,使用 secret 密钥加密并解密信息。
从共享密钥存储检索 secret 密钥
您可以通过在 Data Grid 配置中的 JGroups 堆栈中添加 SYM_ENCRYPT 协议来配置对称加密。这允许 Data Grid 集群从您提供的密钥存储获取 secret 密钥。
- 节点在启动时从 Data Grid 类路径上的密钥存储安装 secret 密钥。
- 节点加入集群,使用 secret 密钥加密和解密消息。
非对称和对称加密的比较
带有证书身份验证的 ASYM_ENCRYPT 提供了额外的加密层,与 SYM_ENCRYPT 相比。您提供密钥存储来为 secret 密钥加密对协调节点的请求。Data Grid 会自动生成该 secret 密钥并处理集群流量,同时允许您指定何时生成 secret 密钥。例如,您可以配置集群以在节点离开时生成新的 secret 密钥。这样可确保节点无法绕过证书身份验证,并使用旧密钥加入。
另一方面,SYM_ENCRYPT 比 ASYM_ENCRYPT 快,因为节点不需要与集群协调器交换密钥。SYM_ENCRYPT 是没有配置在集群成员资格更改时自动生成新 secret 密钥的潜在缺陷。用户负责生成和分发节点用于加密集群流量的 secret 密钥。
4.8.2. 使用 Asymmetric Encryption 配置集群传输 复制链接链接已复制到粘贴板!
配置 Data Grid 集群,以生成和分发加密 JGroups 消息的 secret 密钥。
流程
- 使用证书链创建密钥存储,使 Data Grid 能够验证节点身份。
将密钥存储放在集群中每个节点的 classpath 上。
对于 Data Grid Server,您要将密钥存储放在 $RHDG_HOME 目录中。
将
SSL_KEY_EXCHANGE和ASYM_ENCRYPT协议添加到 Data Grid 配置中的 JGroups 堆栈,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 创建名为"encrypt-tcp"的安全 JGroups 堆栈,用于扩展 Data Grid 的默认 TCP 堆栈。
- 2
- 将节点用来执行证书身份验证的密钥存储命名。
- 3
- 指定密钥存储密码。
- 4
- 使用
stack.combine和stack.position属性在VERIFY_SUSPECT协议后将SSL_KEY_EXCHANGE插入到默认的 TCP 堆栈中。 - 5
- 指定协调器节点生成的 secret 密钥长度。默认值为
2048。 - 6
- 指定 coordinator 节点用来生成 secret 密钥的密码引擎。默认值为
RSA。 - 7
- 配置 Data Grid,以在协调器节点更改时生成并分发新的 secret 密钥。
- 8
- 配置 Data Grid,以在节点离开时生成和分发新的 secret 密钥。
- 9
- 配置 Data Grid 节点,以使用
SSL_KEY_EXCHANGE协议进行证书身份验证。 - 10
- 使用
stack.combine和stack.position属性在SSL_KEY_EXCHANGE协议后将ASYM_ENCRYPT插入默认的 TCP 堆栈。 - 11
- 配置 Data Grid 集群,以使用 secure JGroups 堆栈。
验证
当您启动 Data Grid 集群时,以下日志消息表示集群使用 secure JGroups 堆栈:
[org.infinispan.CLUSTER] ISPN000078: Starting JGroups channel cluster with stack <encrypted_stack_name>
[org.infinispan.CLUSTER] ISPN000078: Starting JGroups channel cluster with stack <encrypted_stack_name>
只有在它们使用 ASYM_ENCRYPT 且可以从协调器节点获取 secret 密钥时,数据网格节点才能加入集群。否则,以下信息会写入 Data Grid 日志:
[org.jgroups.protocols.ASYM_ENCRYPT] <hostname>: received message without encrypt header from <hostname>; dropping it
[org.jgroups.protocols.ASYM_ENCRYPT] <hostname>: received message without encrypt header from <hostname>; dropping it
参考
此流程中的 ASYM_ENCRYPT 配置示例显示了常用的参数。如需完整的可用参数集合,请参阅 JGroups 文档。
4.8.3. 使用 Symmetric 加密配置集群传输 复制链接链接已复制到粘贴板!
配置 Data Grid 集群,以使用您提供的密钥存储中的 secret 密钥加密 JGroups 消息。
流程
- 创建包含 secret 密钥的密钥存储。
将密钥存储放在集群中每个节点的 classpath 上。
对于 Data Grid Server,您要将密钥存储放在 $RHDG_HOME 目录中。
将
SYM_ENCRYPT协议添加到 Data Grid 配置中的 JGroups 堆栈中,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
当您启动 Data Grid 集群时,以下日志消息表示集群使用 secure JGroups 堆栈:
[org.infinispan.CLUSTER] ISPN000078: Starting JGroups channel cluster with stack <encrypted_stack_name>
[org.infinispan.CLUSTER] ISPN000078: Starting JGroups channel cluster with stack <encrypted_stack_name>
只有在使用 SYM_ENCRYPT 且可以从共享密钥存储获取 secret 密钥时,数据网格节点才能加入集群。否则,以下信息会写入 Data Grid 日志:
[org.jgroups.protocols.SYM_ENCRYPT] <hostname>: received message without encrypt header from <hostname>; dropping it
[org.jgroups.protocols.SYM_ENCRYPT] <hostname>: received message without encrypt header from <hostname>; dropping it
参考
此流程中的 SYM_ENCRYPT 配置示例显示了常用的参数。如需完整的可用参数集合,请参阅 JGroups 文档。