Apache Ignite控制脚本(control.sh/bat)完全指南

Apache Ignite控制脚本(control.sh/bat)完全指南

概述

Apache Ignite的控制脚本(control.sh/bat)是管理Ignite集群的强大工具,它提供了丰富的命令行接口来监控和控制集群状态。本文将全面介绍这个工具的使用方法,帮助管理员高效管理Ignite集群。

控制脚本基础

控制脚本位于Ignite安装目录的/bin/文件夹下,根据操作系统不同分为:

  • Unix/Linux系统:control.sh
  • Windows系统:control.bat

基本语法结构为:

control.sh|bat <连接参数> <命令> <参数>

连接集群配置

默认情况下,脚本会尝试连接本地节点(localhost:11211)。如需连接远程集群,需指定连接参数:

| 参数 | 说明 | 默认值 | |------|------|--------| | --host | 节点主机名或IP地址 | localhost | | --port | 连接端口 | 11211 | | --user | 用户名 | - | | --password | 用户密码 | - | | --ping-interval | 心跳间隔(毫秒) | 5000 | | --ping-timeout | 心跳超时(毫秒) | 30000 |

对于安全连接,还支持SSL相关参数配置,包括协议、加密套件、密钥库等安全设置。

集群状态管理

查看集群状态

集群可能处于三种状态之一:

  • ACTIVE:活跃状态,可读写
  • INACTIVE:非活跃状态
  • READ_ONLY:只读状态

查看状态命令:

control.sh --state

激活/停用集群

激活集群(使用原生持久化时必须):

control.sh --set-state ACTIVE

停用集群(谨慎操作):

control.sh --set-state INACTIVE [--yes]

基线拓扑管理

基线拓扑(Baseline Topology)是Ignite持久化数据的重要概念,控制脚本提供了完整的管理功能。

查看基线拓扑

control.sh --baseline

输出示例:

Cluster state: active
Current topology version: 3

Baseline nodes:
    ConsistentId=7d79a1b5-cbbd-4ab5-9665-e8af0454f178, State=ONLINE
    ConsistentId=dd3d3959-4fd6-4dc2-8199-bee213b34ff1, State=ONLINE

管理基线节点

添加节点(触发重平衡):

control.sh --baseline add nodeId1,nodeId2

移除节点(节点必须已下线):

control.sh --baseline remove nodeId1,nodeId2

设置基线拓扑:

control.sh --baseline set nodeId1,nodeId2

恢复特定版本的基线拓扑:

control.sh --baseline version 5

基线自动调整

对于内存集群,基线自动调整默认启用;持久化集群默认禁用。

启用自动调整(设置超时毫秒):

control.sh --baseline auto_adjust enable timeout 30000

禁用自动调整:

control.sh --baseline auto_adjust disable

事务管理

查看事务

查看符合条件的事务:

control.sh --tx <过滤器> --info

常用过滤器参数:

  • --xid:事务ID
  • --min-duration:最小持续时间(秒)
  • --min-size:最小事务大小
  • --label:事务标签(支持正则)
  • --nodes:指定节点列表

终止事务

终止长时间运行的事务:

control.sh --tx --min-duration 100 --kill

事务竞争检测

检测键级竞争情况(适用于排查长时间运行或挂起的事务):

# 检测所有节点上至少5个事务竞争的键
control.sh --cache contention 5

# 检测特定节点上的竞争
control.sh --cache contention 5 nodeId

输出会详细显示竞争键、相关事务和节点信息。

缓存管理

查看缓存信息

列出所有缓存:

control.sh --cache list .

查看缓存组分布:

control.sh --cache list . --groups

查看原子序列:

control.sh --cache list . --seq

创建缓存

从Spring XML配置创建缓存:

control.sh --cache create --springXmlConfig /path/to/config.xml

跳过已存在的缓存:

control.sh --cache create --springXmlConfig /path/to/config.xml --skip-existing

销毁缓存

销毁指定缓存:

control.sh --cache destroy --caches cache1,cache2

销毁所有用户创建的缓存:

control.sh --cache destroy --destroy-all-caches

清空缓存

清空指定缓存数据:

control.sh --cache clear --caches cache1,cache2

扫描缓存

扫描缓存条目(显示键值类型和内容):

control.sh --cache scan cacheName --limit 100

最佳实践

  1. 生产环境建议:始终使用--yes参数前先确认操作,关键操作建议先在测试环境验证
  2. 基线拓扑调整:在业务低峰期进行,避免重平衡影响性能
  3. 事务管理:定期检查长时间运行的事务,及时处理异常事务
  4. 缓存操作:大规模缓存操作前评估内存和网络影响

通过掌握这些控制脚本命令,您可以全面管理Ignite集群的各个方面,从集群状态到缓存管理,为系统运维提供强大支持。

你可能感兴趣的:(Apache Ignite控制脚本(control.sh/bat)完全指南)