Apache Ignite的控制脚本(control.sh/bat)是管理Ignite集群的强大工具,它提供了丰富的命令行接口来监控和控制集群状态。本文将全面介绍这个工具的使用方法,帮助管理员高效管理Ignite集群。
控制脚本位于Ignite安装目录的/bin/
文件夹下,根据操作系统不同分为:
control.sh
control.bat
基本语法结构为:
control.sh|bat <连接参数> <命令> <参数>
默认情况下,脚本会尝试连接本地节点(localhost:11211
)。如需连接远程集群,需指定连接参数:
| 参数 | 说明 | 默认值 | |------|------|--------| | --host | 节点主机名或IP地址 | localhost | | --port | 连接端口 | 11211 | | --user | 用户名 | - | | --password | 用户密码 | - | | --ping-interval | 心跳间隔(毫秒) | 5000 | | --ping-timeout | 心跳超时(毫秒) | 30000 |
对于安全连接,还支持SSL相关参数配置,包括协议、加密套件、密钥库等安全设置。
集群可能处于三种状态之一:
查看状态命令:
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
常用过滤器参数:
终止长时间运行的事务:
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
通过掌握这些控制脚本命令,您可以全面管理Ignite集群的各个方面,从集群状态到缓存管理,为系统运维提供强大支持。