Redis Manager 2.0 开发——模块功能(2019年)

114 阅读4分钟

重构代号:Asgard

一、产品定位

Redis Manager 定位中小型企业 redis 集群的运维和管理。功能上保证安全性、可靠性、完整性;产品上保证易用性、明确性。

二、重构原因

  • 数据加载速度过慢
  • 用户体验不够友好
  • 加入多项新功能

三、重构目标

1. 技术&架构

  • 前后端分离
  • 优化系统性能
  • 功能模块清晰,降低耦合
  • 基于接口开发
  • 代码规范、注释清晰

2. 功能

  • 优化 UI(体验、性能),整体风格统一、简单
  • 增强集群监控
  • 增强集群管理
  • 增强、优化集群创建
  • 增强告警
  • 集成内存分析功能
  • 新增'积木'模块
  • 增强防呆处理

四、技术选型

  • Spring Boot 2
  • Vue 2.0
  • Jedis 3.0.1
  • Eureka
  • MySQL

五、产品功能

监控模块、管理模块、 告警模块、分析模块、创建模块、用户模块、积木模块

(一)首页

  • 优化首页加载速度
  • 加载缓存数据,而非实时获取每个集群数据
  • 移动 Query 功能至首页,同时优化此功能,目前此功能存在数据展示错乱、数据精确查询却查询不到问题

(二)监控模块

监控集群重点指标,便于快速定位 redis 集群问题

TODO: 列出所有必要监控数据:内存、碎片率、连接数、命令数、命中率等

  • 提供必要监控数据图表,监控信息表述清晰明确
  • 优化图表性能
  • 定时刷新数据
  • 优化 TimeRange 选择器
  • 优化数据Type选择器(Avg、Max、Min)
  • 移动 SlowLog 到明显位置
  • 优化 SlowLog 加载性能

(三)管理模块

集群管理核心功能:ImportNode、ForgetNode、BeSlave、BeMaster、MoveSlot、MemoryPurge、StopNode、StartNode、RestartNode、DeleteNode

  • 导入集群,选择负责人
  • 合并 ClusterManager 和 NodeManager 功能
  • 创建新节点(复用创建集群模块功能)
  • 修改、重命名配置,配置落地
  • 展示集群拓扑图和槽分配情况
  • 保存拓扑图快照
  • 告知集群变动(配置、节点等):结合告警功能
  • 查看节点配置和Info
  • 删除集群功能:验证码

(四)创建模块

机器创建、Docker 创建、Kubernetes 创建、HumpBack 创建

  • 导入机器集群(机器集群密码统一),指定集群端口范围
  • 简化安装包(Machine & Docker)目录结构,无需用户手动配置或更改
  • 创建集群:默认通过选择导入的某个机器集群来创建集群,也可自己配置临时集群列表
  • 机器创建:redis.tar 获取方式可通过本地获取(推荐),或填入远程地址获取
  • Docker 创建:监测所有机器 Docker 环境,自动 Build 镜像(用户提供),或直接远程仓库获取
  • 简化创建工作,给予用户明确的提示和建议
  • 指定集群负责人(可多人)

(五)分析模块(增强监控,可选择性开启)

  • RCT 项目集成:RDB 文件分析,通过分发jar包注册到 Dashboard 来分析集群数据情况,减少用户操作
  • 碎片诊断:通过分析当前集群内存情况,分析出内存碎片由什么产生
  • 其他:自动内存碎片整理、full Sync等较影响Redis性能的指标进行分析(暂定)

(六)用户模块

  • 插拔式接入用户模块,便于接入公司内部域账户
  • 用户模块提供分组、角色和权限控制,角色:普通用户、管理员和超级管理员;权限:只读、可读可写
  • 管理员:添加用户、管理当前组信息、管理当前组的用户、集群管理、集群创建等高级操作
  • 普通用户:仅拥有查看监控权限
  • 超级管理员:拥有最高权限
  • 记录管理员操作记录
  • 添加用户时需要填写联系方式等信息
  • 接入 OAuth 协议接口

(七)告警模块

提供多种告警方式:默认邮件告警,实现微信告警、钉钉告警

  • 通过给监控模块、分析模块配置规则或阈值进行告警
  • 优化规则匹配功能

(八)工具模块(积木模块)

  • Redis 数据操作:增删查改
  • Console
  • 数据迁移

六、RedisManager 部署

  • 简化配置
  • 简化部署方式,支持 Machine、Docker、K8S