web_admin 是一个用于管理 Raft KV 存储集群的轻量级 Web 界面。它作为一个独立的 HTTP 服务运行,通过 TCP 协议连接到 Raft 节点,提供可视化的数据管理和权限控制功能。
该工具由两部分组成:
INFO, SEARCH, COUNT, JOIN, LEAVE 以及 GET/SET/DEL 等所有标准 Raft CLI 命令,方便远程运维和调试。GET (查询)、SET (设置) 和 DEL (删除) 操作。USER_UNLOCK)。9011 监听。运行 Web Admin:
go run example/web_admin/main.go
服务默认启动在 http://localhost:8088。
在 main.go 中可以修改默认配置:
const (
TargetTCPAddr = "127.0.0.1:9011" // Raft 节点地址
WebPort = ":8088" // Web Admin 监听端口
)
本节介绍了如何利用 example/role 目录下的多节点示例环境与 Web Admin 进行联合调试。该环境预置了带有 RBAC (基于角色的访问控制) 功能的 Raft 节点。
example/role 包含两个节点配置 (node1 和 node2) 以及用于初始化测试数据的 CLI 命令。
步骤 1:启动 Raft 节点 1
打开一个新的终端,启动 node1:
# 终端 1
cd example/role/node1
go run main.go demo_cli.go
127.0.0.1:9001demo-init 命令用于初始化测试账户。步骤 2:启动 Raft 节点 2 (可选)
打开另一个终端,启动 node2 以模拟集群环境:
# 终端 2
cd example/role/node2
go run main.go demo_cli.go
127.0.0.1:9002步骤 3:初始化测试数据
在 node1 的终端中,输入以下命令初始化角色和用户:
# 在 node1 运行的终端中输入
demo-init
此命令将创建以下测试账户:
pass123): 角色 sales_manager (允许设置 product.discount 为 0.5-0.9)pass123): 角色 junior_sales (允许设置 product.discount 为 0.8-0.95)修改 example/web_admin/main.go 以连接到 node1 的端口 (9001)。
// example/web_admin/main.go
const (
TargetTCPAddr = "127.0.0.1:9001" // 修改为 node1 的端口
WebPort = ":8088"
)
启动 Web Admin:
go run example/web_admin/main.go
访问 http://localhost:8088。
测试登录:
alice / pass123 登录。测试权限控制:
SET product.discount 0.6 -> 应成功 (在 0.5-0.9 范围内)。SET product.discount 0.1 -> 应失败 (超出范围)。SET system.config 1 -> 应失败 (无权限)。测试多角色视图:
bob / pass123 登录。SET product.discount 0.6 -> 应失败 (bob 只能设置 0.8-0.95)。通过此流程,可以完整验证 Web Admin 的前端逻辑与后端 Raft 节点的权限系统是否协同工作正常。