集群配置
Ignite 3 的集群配置在整个集群中共享,无论在哪个节点上调整配置都会传播到集群中的所有节点。
在 Ignite 3 中,配置文件支持 HOCON
或 JSON
格式。配置文件有一个名为ignite
的根节点
,所有配置项都是该节点的子节点、孙节点等。
1.检查集群配置
使用命令行工具可以获取集群配置信息:
- 启动命令行工具并接入集群中的任意节点;
- 运行
cluster config show
命令。
命令行工具会输出整个集群的配置信息,如果只想要部分配置,可以将所需的属性作为命令行参数就可以缩小搜索范围,例如:
shell
cluster config show ignite.transaction
2.调整集群配置
可以使用命令行工具调整集群的配置,做法如下:
- 启动命令行工具并接入集群中的任意节点;
- 运行
cluster config update
命令并提供新的参数作为命令参数,例如:shellcluster config update ignite.metaStorage.idleSyncTimeInterval=600
新的配置将自动应用于整个集群。
3.导出集群配置
使用以下命令可以将节点配置导出为文件:
shell
bin/ignite3 cluster config show > cluster-config.txt
4.配置参数
4.1.事件日志配置
json
{
"ignite" : {
"eventlog" : {
"channels" : [ ],
"sinks" : [ ]
}
}
}
属性 | 默认值 | 描述 | 可修改 | 需要重启 | 可选值 |
---|---|---|---|---|---|
channels | 事件日志通道的命名列表 | 是 | 否 | 有效的通道 | |
sinks | 事件日志接收器的命名列表 | 是 | 否 | 有效的接收器 |
4.2.垃圾回收配置
json
{
"ignite" : {
"gc" : {
"batchSize" : 5,
"lowWatermark" : {
"dataAvailabilityTime" : 600000,
"updateInterval" : 300000
},
"threads" : 16
}
}
}
属性 | 默认值 | 描述 | 可修改 | 需要重启 | 可选值 |
---|---|---|---|---|---|
batchSize | 5 | 每个分区的垃圾回收要删除的每批条目数 | 是 | 否 | 0 - inf |
lowWatermark.dataAvailabilityTime | 600000 | 过时版本可用的持续时间(毫秒) | 是 | 否 | 1000 - inf |
lowWatermark.updateInterval | 300000 | 低水位线更新的间隔 | 是 | 否 | 0 - inf |
threads | Runtime.getRuntime().availableProcessors() | 垃圾回收器使用的线程数 | 是 | 是 | 1 - inf |
4.3.元存储配置
json
{
"ignite" : {
"metaStorage" : {
"idleSyncTimeInterval" : 500
}
}
}
属性 | 默认值 | 描述 | 可修改 | 需要重启 | 可选值 |
---|---|---|---|---|---|
idleSyncTimeInterval | 500 | 用于确定元存储空闲时(不发出写入)发出时间同步命令的间隔(毫秒)。不应超过schemaSync.delayDuration ,最佳值是schemaSync.delayDuration / 2 。 | 是 | 否(在元存储领导者连任时生效) | 1 - inf |
4.4.指标配置
json
{
"ignite" : {
"metrics" : {
"exporters" : [ ]
}
}
}
属性 | 默认值 | 描述 | 可修改 | 需要重启 | 可选值 |
---|---|---|---|---|---|
exporters | 要使用的指标导出器列表 | 是 | 否 | 有效的导出器 |
4.5.复制配置
json
{
"ignite" : {
"replication" : {
"idleSafeTimePropagationDuration" : 1000,
"leaseAgreementAcceptanceTimeLimit" : 120000,
"leaseExpirationInterval" : 5000,
"rpcTimeout" : 60000
}
}
}
属性 | 默认值 | 描述 | 可修改 | 需要重启 | 可选值 |
---|---|---|---|---|---|
idleSafeTimePropagationDuration | 1000 | 分区安全时间更新之间的间隔。 | 否 | 不适用 | 1 - inf |
leaseAgreementAcceptanceTimeLimit | 120000 | 新分区租约持有者的选举的最长持续时间(毫秒)。 | 是 | 不适用 | 5000 - inf |
leaseExpirationInterval | 5000 | 单个租约的持续时间。 | 是 | 不适用 | 2000 - 120000 |
rpcTimeout | 60000 | 复制请求处理超时。 | 是 | 否 | 0 - inf |
4.6.模式同步配置
json
{
"ignite" : {
"schemaSync" : {
"delayDuration" : 100,
"maxClockSkew" : 500
}
}
}
属性 | 默认值 | 描述 | 可修改 | 需要重启 | 可选值 |
---|---|---|---|---|---|
delayDuration | 100 | 模式更新生效的延迟。应超过将模式更新交付到所有集群节点的典型时间,否则操作可能会延迟处理。不应小于 metaStorage.idleSyncTimeInterval ,最佳值为 metaStorage.idleSyncTimeInterval * 2 。 | 否 | 不适用 | 1 - inf |
maxClockSkew | 500 | 集群容忍的最大物理时钟偏差(毫秒)。如果集群中两个节点的物理时钟之差超过此值,则集群可能会出现异常行为。 | 否 | 不适用 | 0 - inf |
4.7.安全配置
json
{
"ignite" : {
"security" : {
"authentication" : {
"providers" : [ {
"name" : "default",
"type" : "basic",
"users" : [ {
"password" : "********",
"username" : "ignite",
"displayName" : "ignite"
}]
} ]
}
}
}
属性 | 默认值 | 描述 | 可修改 | 需要重启 | 可选值 |
---|---|---|---|---|---|
providers.name | default | 认证程序的名称 | 是 | 否 | 有效的字符串 |
providers.type | basic | 认证程序的类型 | 是 | 否 | basic 、ldap |
providers.users | 向认证程序注册的用户列表 | ||||
providers.users.displayName | ignite | 区分大小写的用户名 | 否 | 不适用 | 有效的用户名 |
providers.users.password | 用户密码 | 是 | 否 | 有效的密码 | |
providers.users.username | ignite | 不区分大小写的用户名 | 是 | 否 | 有效的用户名 |
4.8.SQL配置
json
{
"ignite" : {
"sql" : {
"planner" : {
"estimatedNumberOfQueries" : 1024,
"maxPlanningTime" : 15000
},
"statementMemoryQuota" : "100%"
}
}
}
属性 | 默认值 | 描述 | 可修改 | 需要重启 | 可选值 |
---|---|---|---|---|---|
planner.estimatedNumberOfQueries | 1024 | 计划在特定时间段内在集群中执行的唯一查询的估计数量,用于优化内部缓存和进程,可选。 | 是 | 是 | 0 - Integer.MAX_VALUE |
planner.maxPlanningTime | 15000 | 查询计划超时(毫秒),达到超时后计划优化过程会停止,0 表示没有超时。 | 是 | 是 | 0 - Long.MAX_VALUE |
statementMemoryQuota | 100% | 单个 SQL 语句可以使用的内存量,具有维度标识符的数字:% :节点堆内存的百分比;k :KB;m :MB;g :GB,带有任何维度标识符的 0 将关闭内存配额。 | 是 | 否 | 0-100%,0-9223372036854775807k/m/g |
4.9.存储更新配置
json
{
"ignite" : {
"storageUpdate" : {
"batchByteLength" : 8192
}
}
}
属性 | 默认值 | 描述 | 可修改 | 需要重启 | 可选值 |
---|---|---|---|---|---|
batchByteLength | 8192 | 要写入物理存储的批处理长度(字节),用于限制原子写入的大小。 | 是 | 否 | 1 - Integer.MAX_VALUE |
4.10.事务配置
json
{
"ignite" : {
"transaction" : {
"abandonedCheckTs" : 5000,
"attemptsObtainLock" : 3,
"implicitTransactionTimeout" : 3000,
"rpcTimeout" : 60000,
"txnResourceTtl" : 30000
}
}
}
属性 | 默认值 | 描述 | 可修改 | 需要重启 | 可选值 |
---|---|---|---|---|---|
abandonedCheckTs | 5000 | 事务被视为已放弃的时间量。 | 是 | 是 | 0 - inf |
attemptsObtainLock | 3 | 尝试获取锁的次数,超过该值后将在事务上抛出锁冲突异常。 | 是 | 是 | 0 - inf |
implicitTransactionTimeout | 3000 | 隐式事务超时,用于使用 null 而不是显式事务实例的键-值表 API 调用,不能大于rpcTimeout 。 | 是 | 是 | 0 - inf |
rpcTimeout | 60000 | 事务操作超时,用于表 API 操作。 | 是 | 是 | 0 - inf |
txnResourceTtl | 30000 | 事务资源(事务状态、事务节点、打开游标等)的生存时间,应该高于跨集群传播实际事务信息的延迟,否则某些事务操作可能需要更多时间才能从持久化存储中找出状态),必须大于rpcTimeout 。 | 是 | 是 | 0 - inf |
5.系统配置
本章节介绍 Ignite 的内部属性。虽然也可以像编辑所有其他属性一样编辑这些属性,即使用命令行工具的node config update
命令,但建议开发者慎重修改。这些属性可以适用整个集群(见下文),也可以适用某个节点。
提示
注意,属性名为驼峰式。
json
{
"ignite" : {
"system" : {
"cmgPath" : "",
"metastoragePath" : "",
"partitionsBasePath" : "",
"partitionsLogPath" : "",
"properties":[]
}
}
}
属性 | 默认值 | 描述 | 可修改 | 需要重启 | 可选值 |
---|---|---|---|---|---|
system.cmgPath | 集群管理组信息的存储路径。仅当节点是 CMG 的一部分时适用。数据默认存储在{IGNITE_HOME}/work/cmg ,建议仅在空节点上更改此路径。 | 是 | 是 | 有效的绝对路径。 | |
system.metastoragePath | 集群元信息的存储路径。仅当节点是元存储组的一部分时适用。数据默认存储在{IGNITE_HOME}/work/metastorage ,建议仅在空节点上更改此路径。 | 是 | 是 | 有效的绝对路径。 | |
system.partitionsBasePath | 数据分区的存储路径。分区默认存储在{IGNITE_HOME}/work/partitions 。建议仅在空节点上更改此路径。 | 是 | 是 | 有效的绝对路径。 | |
system.partitionsLogPath | 数据分区的 Raft 日志存储路径。分区默认存储在{system.partitionsBasePath}/log ,建议仅在空节点上更改此路径。 | 是 | 是 | 有效的绝对路径。 | |
system.properties | Ignite 组件使用的系统属性。 | 是 | 是 | 属性数组。 |
18624049226