Step17-Scripts-组件优先级
# 1. 组件优先级配置文件介绍
在 Ambari Stacks 的服务集成体系下,每个服务的启动、停止与服务检查都可以定义严格的优先级和依赖关系 ,用于保证复杂分布式环境下各组件的有序调度。
Redis 组件的优先级配置存放于:
ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/REDIS/role_command_order.json
1
# 2. role_command_order.json 配置内容
以下为 Redis 组件典型的优先级声明:
{
"general_deps": {
"_comment": "Updated dependencies for Redis components in a cluster mode",
"REDIS_MASTER-START": [],
"REDIS_SLAVE-START": [
"REDIS_MASTER-START"
],
"REDIS_CLIENT-START": [
"REDIS_MASTER-START",
"REDIS_SLAVE-START"
],
"REDIS_MASTER-STOP": [
"REDIS_SLAVE-STOP"
],
"REDIS_SLAVE-STOP": [],
"REDIS_CLIENT-STOP": [],
"REDIS_SERVICE_CHECK-SERVICE_CHECK": [
"REDIS_MASTER-START",
"REDIS_SLAVE-START",
"REDIS_CLIENT-START"
]
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 3. 优先级依赖详细解读
# 3.1 启动顺序说明
操作 | 必须依赖 | 说明 |
---|---|---|
REDIS_MASTER-START | 无 | Master 可最先启动 |
REDIS_SLAVE-START | REDIS_MASTER-START | Slave 必须等待 Master 启动后再启动 |
REDIS_CLIENT-START | Master、Slave 启动 | Client 通常依赖服务端全部正常后才进行测试等操作 |
- 为什么这么设计? Master 是集群核心,必须先启动。Slave 启动时要确保可以连通 Master,并自动完成主从注册与同步。Client 主要面向连通性测试、运维工具,需依赖前端服务全部就绪。
# 3.2 停止顺序说明
操作 | 必须依赖 | 说明 |
---|---|---|
REDIS_MASTER-STOP | REDIS_SLAVE-STOP | 停 Master 前要先停 Slave,避免主节点先失联导致从节点无主 |
REDIS_SLAVE-STOP | 无 | Slave 可直接安全下线 |
REDIS_CLIENT-STOP | 无 | Client 无状态,随时可停 |
- 场景意义:优先停 Slave,保障数据不丢失、集群完整性不受影响。Master 最后停止,有利于平滑切换和最小化业务影响。
# 3.3 服务检查依赖
操作 | 必须依赖 | 说明 |
---|---|---|
REDIS_SERVICE_CHECK-SERVICE_CHECK | Master、Slave、Client 全部启动 | 只有核心服务和工具全部 ready 后才能做集群健康检查 |
- 场景意义:检查只在全体组件都启动后才生效,确保 Service Check 能反映集群的真实整体状态。
# 4. 工程应用与自动化价值
提示
- 配置了 role_command_order.json 后,Ambari 可在复杂集群批量操作时,严格按优先级顺序依赖,防止异常顺序导致数据不一致或服务异常。
- 优先级自动调度提升了批量安装、扩容、滚动升级、健康检查等任务的自动化和安全性。
- 支持随业务和集群规模扩展灵活调整依赖规则,保障长期可维护性。
- 01
- bigtop-select 打包缺 compat 报错修复 deb07-16
- 02
- bigtop-select 打包缺 control 文件报错修复 deb07-16
- 03
- 首次编译-环境初始化 必装07-16