A.33. JGroups 协议


Expand
协议协议类型描述

ASYM_ENCRYPT

Encryption

使用存储在集群的协调者中的 secret 密钥来加密群集成员之间的消息。

AUTH

身份验证

为群集成员提供一层身份验证。

azure.AZURE_PING

Discovery(发现)

支持使用 Microsoft Azure 的 blob 存储进行节点发现。

FD_ALL

故障检测

基于简单的心跳协议提供故障检测。

FD_SOCK

故障检测

根据群集成员之间创建的 TCP 套接字环提供故障检测。

JDBC_PING

Discovery(发现)

使用共享数据库来发现群集成员,其中成员写入其地址。

MERGE3

合并

在集群分割时,将子集群合并在一起。

MFC

流控制

在发送者和所有群集成员之间提供多播流控制。

MPING

Discovery(发现)

发现具有 IP 多播的群集成员。

pbcast.GMS

Group Membership

处理组成员资格,包括加入集群的新成员,现有成员保留请求,为崩溃成员保留 SUSPECT 消息。

pbcast.NAKACK2

消息传输

确保消息可靠性和顺序,确保按发送者发送的顺序接收由其中一个发送方发送的所有消息。

pbcast.STABLE

消息稳定性

删除所有成员可见的消息。

PING

Discovery(发现)

成员的初始发现,支持动态发现群集成员。

SASL

身份验证

使用 SASL 机制为群集成员提供一层身份验证。

SYM_ENCRYPT

Encryption

使用共享密钥存储来加密群集成员之间的消息。

S3_PING

Discovery(发现)

使用 Amazon S3 发现初始成员。

TCPGOSSIP

Discovery(发现)

使用外部 gossip 路由器发现群集成员。

TCPPING

Discovery(发现)

包含组成集群的群集成员地址的静态列表。

UFC

流控制

在发送者和所有群集成员之间提供单播流控制

UNICAST3

消息传输

确保单播消息的消息可靠性和顺序,确保按发送者的顺序接收由一发送者发送的所有消息。

VERIFY_SUSPECT

故障检测

验证怀疑成员是否已被 ping 最后一个时间在驱除它之前被 ping 结束。

通用协议属性

所有协议都可以访问以下属性:

Expand
表 A.110. 协议属性
属性default描述

module

org.jgroups

用于解析协议类型的模块。

属性

 

此协议的属性。

启用统计

false

是否启用统计数据。

身份验证协议

身份验证协议用于执行身份验证,主要负责确保只有经过身份验证的用户可以加入集群。这些协议位于 GMS 协议下方,以便他们可以侦听加入群集的请求。

AUTH 属性

虽然 AUTH 协议不包含额外的属性,但它必须有一个令牌定义为子元素。

注意

在定义此协议时,会使用 auth-protocol 元素,而不是 protocol 元素。

令牌类型

当使用 Elytron 提高安全性时,建议使用以下身份验证令牌之一。这些身份验证令牌有意设计用于 Elytron,可能不会用于旧的安全配置。

Expand
表 A.111. Elytron 令牌类型
令牌描述

cipher-token

转换共享 secret 的身份验证令牌。RSA 是用于转换的默认算法。

digest-token

转换共享 secret 的身份验证令牌。SHA-256 是用于转换的默认算法。

plain-token

没有额外转换为共享 secret 的身份验证令牌。

以下身份验证令牌从 JGroups 继承,并有权在需要身份验证的任何配置中使用。

Expand
表 A.112. JGroups 令牌类型
令牌描述

MD5Token

使用 MD5 或 SHA 哈希加密共享 secret 的身份验证令牌。MD5 是用于加密的默认算法。

SimpleToken

没有额外转换为共享 secret 的身份验证令牌。此令牌不区分大小写,在决定字符串是否匹配时不考虑。

X509Token

使用 X509 证书加密共享 secret 的身份验证令牌。

SASL 属性
Expand
表 A.113. SASL 属性
属性default描述

client_callback_handler

 

节点充当客户端时使用的 CallbackHandler 的类名称。

client_name

 

节点充当客户端时使用的名称。如果使用 JAAS 登录模块,此名称也会用于获取主题。

client_password

 

节点充当客户端时使用的密码。如果使用 JAAS 登录模块,也使用此密码来获取主题。

login_module_name

 

用作创建 SASL 客户端和服务器的主题的 JAAS 登录模块名称。此属性仅需要某些 mech 值,如 GSSAPI。

mech

 

SASL 身份验证机制的名称。此名称可以是本地 SASL 提供程序支持的任何机制,并且 JDK 提供 CRAM-MD5DIGEST-MD5GSSAPINTLM

sasl_props

 

定义的属性

server_callback_handler

 

节点充当服务器时使用的 CallbackHandler 的类名称。

server_name

 

完全限定服务器名称。

timeout

5000

等待响应挑战的毫秒数。

发现协议

以下协议用于查找集群的初始成员资格,然后可用于确定当前的协调器。发现协议列表如下。

AZURE_PING 属性
Expand
表 A.114. AZURE_PING 属性
属性default描述

container

 

用于 PING 数据的 blob 容器的名称。这必须是有效的 DNS 名称。

storage_access_key

 

存储帐户的 secret 访问密钥。

storage_account_name

 

包含 blob 容器的 Microsoft Azure 存储帐户的名称。

JDBC_PING 属性
Expand
表 A.115. JDBC_PING 属性
属性default描述

data-source

 

数据源引用,改为使用 connection 和 JNDI 查找属性。

注意

在定义 JDBC_PING 协议时,使用 jdbc-protocol 元素而不是 protocol 元素。

S3_PING 属性
Expand
表 A.116. S3_PING 属性
属性default描述

access_key

 

用于访问 S3 存储桶的 Amazon S3 访问密钥。

主机

s3.amazonaws.com

S3 Web 服务的目的地。

位置

 

要使用的 Amazon S3 存储桶的名称。bucket 必须存在并使用唯一名称。

pre_signed_delete_url

 

用于 DELETE 操作的预签名 URL。

port

  • 443 如果 use_ssltrue
  • 80,如果 use_sslfalse

Web 服务侦听的端口。

pre_signed_put_url

 

用于 PUT 操作的预签名 URL。

prefix

 

如果设置了,并且设置了 位置,请将存储桶名称定义为 PREFIX-LOCATION。如果设置,并且该存储桶不存在于指定的 PREFIX-LOCATION 中,则存储桶名称将变为 PREFIX,后跟一个随机 UUID。

secret_access_key

 

用于访问 S3 存储桶的 Amazon S3 secret 访问密钥。

use_ssl

true

决定在联系主机和端口组合时使用 SSL。

TCPGOSSIP 属性
Expand
表 A.117. TCPGOSSIP 属性
属性default描述

socket-binding

 

此协议层的套接字绑定规格。deprecated: 使用 socket-bindings 替代。

socket-bindings

 

此协议的出站套接字绑定。

注意

在定义 TCPGOSSIP 协议时,会使用 socket-discovery-protocol 元素而不是 protocol 元素。

TCPPING 属性
Expand
表 A.118. TCPPING 属性
属性default描述

socket-binding

 

此协议层的套接字绑定规格。deprecated: 使用 socket-bindings 替代。

socket-bindings

 

此协议的出站套接字绑定。

注意

在定义 TCPPING 协议时,会使用 socket-discovery-protocol 元素,而不是 protocol 元素。

加密协议

以下协议用于保护通信堆栈:加密基于集群的所有成员的共享 secret 密钥。使用 SYM_ENCRYPT 或公钥交换(使用 A SYM_ENCRYPT )时,此密钥可以从共享密钥存储获取。在定义以下协议时,生成的 XML 中会创建一个 encrypt-protocol 元素。

注意

如果使用 ASYM_ENCRYPT,则同一堆栈必须定义有 AUTH 协议。使用 SYM_ENCRYPTAUTH 协议是可选的。

ASYM_ENCRYPT 属性
Expand
表 A.119. ASYM_ENCRYPT 属性
属性default描述

key-alias

 

指定密钥存储中的加密密钥别名。

key-credential-reference

 

从密钥存储获取加密密钥所需的凭据。

key-store

 

对包含加密密钥的密钥存储的引用。

SYM_ENCRYPT 属性
Expand
表 A.120. SYM_ENCRYPT 属性
属性default描述

key-alias

 

指定密钥存储中的加密密钥别名。

key-credential-reference

 

从密钥存储获取加密密钥所需的凭据。

key-store

 

对包含加密密钥的密钥存储的引用。

失败检测协议

以下协议用于探测集群的成员,以确定它们是否仍处于活动状态。这些协议没有超出通用属性的任何其他属性。

  • FD_ALL
  • FD_SOCK
  • VERIFY_SUSPECT

流控制协议

以下协议负责流控制,或将消息发件人率调整为最慢的接收器的过程。如果发送者以比接收方快的速度发送消息,则接收方将按队列或丢弃消息,从而导致重新传输。这些协议没有超出通用属性的任何其他属性。

  • MFC - 多播流控制
  • UFC - 单播流控制

组成员协议

直播.GMS 协议负责加入群集的新成员、离开集群的现有成员,以及怀疑崩溃的成员。此协议没有超出通用属性的任何其他属性。

合并协议

如果集群被分割,MERGE3 协议负责将子集群合并在一起。虽然此协议负责将群集成员合并回一起,但这不会合并集群的状态。应用负责处理回调以合并状态。此协议没有超出通用属性的任何其他属性。

消息稳定性

pbcast.STABLE 协议负责垃圾回收集群所有成员可见的消息。此协议启动包含给定成员的消息号的稳定消息,称为摘要。当集群的所有成员收到其他摘要后,可能会从重新传输表中删除消息。此协议没有超出通用属性的任何其他属性。

可靠的消息传输

以下协议为发送到集群中的所有节点的消息提供可靠的消息交付和 FIFO 属性。可靠的发送意味着发送者不会丢失任何消息,因为所有消息都会被编号,并在未收到序列号时发送重新传输请求。这些协议没有超出通用属性的任何其他属性。

  • pbcast.NAKACK2
  • pbcast.UNICAST3

弃用的协议

以下协议已弃用,已被仅包含类名称的协议替代。例如,协议名称将是 ASYM_ENCRYPT,而不是指定 org.jgroups.protocols.ASYM_ENCRYPT

  • org.jgroups.protocols.ASYM_ENCRYPT
  • org.jgroups.protocols.AUTH
  • org.jgroups.protocols.JDBC_PING
  • org.jgroups.protocols.SYM_ENCRYPT
  • org.jgroups.protocols.TCPGOSSIP
  • org.jgroups.protocols.TCPPING
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat