Apache Ignite控制脚本(control.sh/bat)完全指南
ignite Apache Ignite 项目地址: https://gitcode.com/gh_mirrors/ignite16/ignite
概述
Apache Ignite的控制脚本(control.sh或control.bat)是一个强大的命令行工具,它允许管理员对Ignite集群进行监控和管理操作。这个脚本位于Ignite安装目录的/bin文件夹下,是日常运维工作中不可或缺的工具。
基本语法
控制脚本的基本语法格式如下:
# Unix/Linux系统
control.sh <连接参数> <命令> <参数>
# Windows系统
control.bat <连接参数> <命令> <参数>
连接集群配置
默认情况下,控制脚本会尝试连接本地节点(localhost:11211)。如果需要连接远程集群,可以使用以下参数:
| 参数 | 描述 | 默认值 | |------|------|--------| | --host | 节点主机名或IP地址 | localhost | | --port | 连接端口 | 11211 | | --user | 用户名 | 无 | | --password | 用户密码 | 无 | | --ping-interval | 心跳间隔(毫秒) | 5000 | | --ping-timeout | 心跳超时(毫秒) | 30000 |
对于安全连接,还支持SSL相关参数配置,包括SSL协议、密钥库、信任库等设置。
集群状态管理
获取集群状态
集群可以处于三种状态之一:
- ACTIVE: 活跃状态,可读写
- INACTIVE: 非活跃状态
- READ_ONLY: 只读状态
获取当前状态命令:
control.sh --state
激活集群
当使用原生持久化时,需要显式激活集群:
control.sh --set-state ACTIVE
停用集群
control.sh --set-state INACTIVE [--yes]
注意:停用集群会导致所有正在运行的事务中止,请谨慎操作。
基线拓扑管理
基线拓扑是持久化数据分布的基础框架,控制脚本提供了全面的管理功能。
查看基线拓扑
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 consistentId1,consistentId2,...
# 移除节点(需先下线)
control.sh --baseline remove consistentId1,consistentId2,...
基线拓扑自动调整
对于内存集群,基线拓扑自动调整默认启用;持久化集群默认禁用。
# 启用自动调整(30秒超时)
control.sh --baseline auto_adjust enable timeout 30000
# 禁用自动调整
control.sh --baseline auto_adjust disable
事务管理
控制脚本可以监控和管理集群中的事务。
查看事务
control.sh --tx <过滤条件> --info
常用过滤参数:
- --min-duration: 最小执行时间(秒)
- --label: 事务标签(支持正则)
- --limit: 返回结果数量限制
终止事务
# 终止执行超过100秒的事务
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 account-.*
# 查看缓存组分布
control.sh --cache list . --groups
创建/销毁缓存
# 从Spring配置创建缓存
control.sh --cache create --springXmlConfig config.xml
# 销毁特定缓存
control.sh --cache destroy --caches cache1,cache2
# 销毁所有用户缓存
control.sh --cache destroy --destroy-all-caches
缓存扫描
# 扫描缓存条目(限制10条)
control.sh --cache scan cache1 --limit 10
最佳实践建议
-
生产环境操作:在执行破坏性操作(如停用集群、销毁缓存)前,务必先确认操作影响范围。
-
基线拓扑调整:在持久化集群中,调整基线拓扑会触发数据重平衡,建议在低峰期进行。
-
事务监控:定期检查长时间运行的事务,它们可能是性能瓶颈的来源。
-
安全连接:生产环境建议配置SSL连接参数,确保管理通道安全。
-
自动化脚本:对于重复性管理任务,可以编写shell脚本封装控制命令。
通过掌握这些控制脚本的使用方法,您可以有效地管理和维护Apache Ignite集群,确保其稳定高效运行。
ignite Apache Ignite 项目地址: https://gitcode.com/gh_mirrors/ignite16/ignite
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考