Skip to content

常规配置建议

1.配置默认集群存储

创建集群时,存储配置会使用默认的分布区。虽然建议创建新的分布区,但使用默认分布区并对其进行配置以满足需求也是可以的。

要获取默认存储配置,可以使用cluster config show ignite.zone命令,以下是 JSON 格式的默认配置示例。

提示

在 Ignite 3 中,配置文件支持 HOCONJSON 格式。

json
{
  "ignite" : {
    "zone" : {
      "defaultDataStorage" : "aipersist",
      "defaultDistributionZone" : {
        "dataNodesAutoAdjust" : 2147483647,
        "dataNodesAutoAdjustScaleDown" : 2147483647,
        "dataNodesAutoAdjustScaleUp" : 0,
        "dataStorage" : {
          "dataRegion" : "default",
          "name" : "aipersist"
        },
        "filter" : "$..*",
        "partitions" : 25,
        "replicas" : 1,
        "zoneId" : 0
      },
      "distributionZones" : [ ],
      "globalIdCounter" : 0
    }
  }
}

要更改新分布区的存储类型,可以将zone.defaultDataStorage值更改为aimemrocksDb。还可以通过设置zone.defaultDistrubutionZone.dataStorage.dataRegion参数来更改新分布区的默认数据区,更改数据区参数后需要重启集群。

还可以更改自定义的分布区的这些属性。

可以使用cluster config show ignite.aipersist命令获取数据区的信息,以下是默认数据区的示例:

json
{
  "ignite" : {
    "checkpoint" : {
      "checkpointDelayMillis" : 200,
      "checkpointThreads" : 4,
      "compactionThreads" : 4,
      "frequency" : 180000,
      "frequencyDeviation" : 40,
      "logReadLockThresholdTimeout" : 0,
      "readLockTimeout" : 10000,
      "useAsyncFileIoFactory" : true
    },
    "defaultRegion" : {
      "memoryAllocator" : {
        "type" : "unsafe"
      },
      "replacementMode" : "CLOCK",
      "size" : 268435456
    },
    "pageSize" : 16384,
    "regions" : [ ]
  }
}

要更改默认数据区的大小,可以使用cluster config update命令:

shell
cluster config update --url http://localhost:10300 ignite.aipersist.defaultRegion.size:9999999

2.配置本地路径

Ignite 生成的所有文件默认都存储在安装文件夹中,但是根据需要可以更改文件的路径。可以使用{IGNITE_HOME}\etc\vars.env文件更改文件的存储路径,具体如下:

  • 工作目录,用于存储数据;
  • 日志文件夹,用于存储日志;
  • 加载库文件的文件夹;
  • 用于设置默认节点的配置文件。

另外在节点配置中还可以设置:

  • 通过ignite.system.cmgPath属性来配置存储集群管理组信息的路径;
  • 通过ignite.system.metastoragePath属性来配置存储元数据信息的路径;
  • 通过ignite.system.partitionsBasePath属性来配置存储数据分区的路径;
  • 通过ignite.system.partitionsLogPath属性来配置存储 Raft 日志的路径,这些日志与节点日志是分开的。

3.配置堆内存使用

Ignite 将数据存储在堆外内存中,根据需要为每个存储引擎单独保留。但是 Java 堆内存仍用于处理程序实时生成的中间对象,例如:

  • 集群和节点元数据。这包括有关哪些节点是集群的一部分、内部日志、表版本链、哪些数据被锁定用于事务以及 Ignite 正常运行所需的所有其他信息;
  • 中间查询结果,在特别大的数据集上执行查询时可能会导致更多的堆内存消耗;
  • 计算操作可能会使用堆内存来存储数据,具体堆内存消耗量因不同的业务需求而异。

Ignite 为堆空间默认分配 16GB,根据具体的环境和业务需求,可以更改该值。较小的堆意味着更快的垃圾回收,以及分配给 Ignite 的资源更少。更大的堆允许处理更多的对象,但垃圾回收可能需要更长的时间。

要配置堆空间,可以使用{IGNITE_HOME}\etc\vars.env文件中存储的 JVM_MAX_MEMJVM_MIN_MEM 变量,这些变量相当于在 JVM 中设置 XmxXms 变量。

4.配置服务端日志

Ignite 3 默认使用 java.util.logging(JUL) 日志框架。它利用etc/ignite.java.util.logging.properties配置文件并将日志输出到LOG_DIR变量指向的文件夹(可以在etc/vars.env文件中配置)。日志默认存储在{IGNITE_HOME}/log文件夹中,可以使用java.util.logging.config.file 属性提供自定义配置文件。

有关配置 JUL 日志的更多信息,请参加 Oracle 文档中的 Java 日志

提示

还可以为 Java 客户端配置客户端日志

18624049226