Skip to content

集群配置

Ignite 3 的集群配置在整个集群中共享,无论在哪个节点上调整配置都会传播到集群中的所有节点。

在 Ignite 3 中,配置文件支持 HOCONJSON 格式。配置文件有一个名为ignite的根节点,所有配置项都是该节点的子节点、孙节点等。

1.检查集群配置

使用命令行工具可以获取集群配置信息:

  • 启动命令行工具并接入集群中的任意节点;
  • 运行cluster config show命令。

命令行工具会输出整个集群的配置信息,如果只想要部分配置,可以将所需的属性作为命令行参数就可以缩小搜索范围,例如:

shell
cluster config show ignite.transaction

2.调整集群配置

可以使用命令行工具调整集群的配置,做法如下:

  • 启动命令行工具并接入集群中的任意节点;
  • 运行cluster config update命令并提供新的参数作为命令参数,例如:
    shell
    cluster 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
    }
  }
}
属性默认值描述可修改需要重启可选值
batchSize5每个分区的垃圾回收要删除的每批条目数0 - inf
lowWatermark.dataAvailabilityTime600000过时版本可用的持续时间(毫秒)1000 - inf
lowWatermark.updateInterval300000低水位线更新的间隔0 - inf
threadsRuntime.getRuntime().availableProcessors()垃圾回收器使用的线程数1 - inf

4.3.元存储配置

json
{
  "ignite" : {
    "metaStorage" : {
      "idleSyncTimeInterval" : 500
    }
  }
}
属性默认值描述可修改需要重启可选值
idleSyncTimeInterval500用于确定元存储空闲时(不发出写入)发出时间同步命令的间隔(毫秒)。不应超过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
    }
  }
}
属性默认值描述可修改需要重启可选值
idleSafeTimePropagationDuration1000分区安全时间更新之间的间隔。不适用1 - inf
leaseAgreementAcceptanceTimeLimit120000新分区租约持有者的选举的最长持续时间(毫秒)。不适用5000 - inf
leaseExpirationInterval5000单个租约的持续时间。不适用2000 - 120000
rpcTimeout60000复制请求处理超时。0 - inf

4.6.模式同步配置

json
{
  "ignite" : {
    "schemaSync" : {
      "delayDuration" : 100,
      "maxClockSkew" : 500
    }
  }
}
属性默认值描述可修改需要重启可选值
delayDuration100模式更新生效的延迟。应超过将模式更新交付到所有集群节点的典型时间,否则操作可能会延迟处理。不应小于 metaStorage.idleSyncTimeInterval,最佳值为 metaStorage.idleSyncTimeInterval * 2不适用1 - inf
maxClockSkew500集群容忍的最大物理时钟偏差(毫秒)。如果集群中两个节点的物理时钟之差超过此值,则集群可能会出现异常行为。不适用0 - inf

4.7.安全配置

json
{
  "ignite" : {
    "security" : {
      "authentication" : {
        "providers" : [ {
          "name" : "default",
          "type" : "basic",
          "users" : [ {
            "password" : "********",
            "username" : "ignite",
            "displayName" : "ignite"
          }]
        } ]
      }
  }
}
属性默认值描述可修改需要重启可选值
providers.namedefault认证程序的名称有效的字符串
providers.typebasic认证程序的类型basicldap
providers.users向认证程序注册的用户列表
providers.users.displayNameignite区分大小写的用户名不适用有效的用户名
providers.users.password用户密码有效的密码
providers.users.usernameignite不区分大小写的用户名有效的用户名

4.8.SQL配置

json
{
  "ignite" : {
    "sql" : {
      "planner" : {
        "estimatedNumberOfQueries" : 1024,
        "maxPlanningTime" : 15000
      },
      "statementMemoryQuota" : "100%"
    }
  }
}
属性默认值描述可修改需要重启可选值
planner.estimatedNumberOfQueries1024计划在特定时间段内在集群中执行的唯一查询的估计数量,用于优化内部缓存和进程,可选。0 - Integer.MAX_VALUE
planner.maxPlanningTime15000查询计划超时(毫秒),达到超时后计划优化过程会停止,0表示没有超时。0 - Long.MAX_VALUE
statementMemoryQuota100%单个 SQL 语句可以使用的内存量,具有维度标识符的数字:%:节点堆内存的百分比;k:KB;m:MB;g:GB,带有任何维度标识符的 0 将关闭内存配额。0-100%,0-9223372036854775807k/m/g

4.9.存储更新配置

json
{
  "ignite" : {
    "storageUpdate" : {
      "batchByteLength" : 8192
    }
  }
}
属性默认值描述可修改需要重启可选值
batchByteLength8192要写入物理存储的批处理长度(字节),用于限制原子写入的大小。1 - Integer.MAX_VALUE

4.10.事务配置

json
{
  "ignite" : {
    "transaction" : {
      "abandonedCheckTs" : 5000,
      "attemptsObtainLock" : 3,
      "implicitTransactionTimeout" : 3000,
      "rpcTimeout" : 60000,
      "txnResourceTtl" : 30000
    }
  }
}
属性默认值描述可修改需要重启可选值
abandonedCheckTs5000事务被视为已放弃的时间量。0 - inf
attemptsObtainLock3尝试获取锁的次数,超过该值后将在事务上抛出锁冲突异常。0 - inf
implicitTransactionTimeout3000隐式事务超时,用于使用 null 而不是显式事务实例的键-值表 API 调用,不能大于rpcTimeout0 - inf
rpcTimeout60000事务操作超时,用于表 API 操作。0 - inf
txnResourceTtl30000事务资源(事务状态、事务节点、打开游标等)的生存时间,应该高于跨集群传播实际事务信息的延迟,否则某些事务操作可能需要更多时间才能从持久化存储中找出状态),必须大于rpcTimeout0 - 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.propertiesIgnite 组件使用的系统属性。属性数组。

18624049226