Skip to content

redis-manager-2.3.1

Compare
Choose a tag to compare
@zouhuajian zouhuajian released this 06 Apr 09:29
· 73 commits to master since this release

此次更新为修复更新,建议升级此版本

  1. 修复 MySQL CPU 过高问题
    由于之前的索引及 SQL 语句不合理,导致 MySQL CPU 非常高,经过测试和优化,现已解决此问题。

结果

  • 管理50+集群,共近2000节点时,MySQL CPU 达到了 4000%,优化后在 5% ~ 125% 之间
  • 监控页面性能有明显提升

方案

  • SQL语句优化
  • MySQL索引重建
    除了升级项目外,需要对已经管理的集群node_info_{clusterId}表和redis_node表进行索引重建/新建,操作前请停止redis-manager服务,步骤如下
use redis_manager;
show tables;

-- node_info_{clusterId}表操作
-- 找到所有 `node_info_` 开头的表,先进行删除,再创建
ALTER TABLE node_info_{clusterId} DROP INDEX `multiple_query`;
-- 不再需要`last_data`索引,如果本身就没有,则忽略
ALTER TABLE node_info_{clusterId} DROP INDEX `last_data`;
ALTER TABLE node_info_1 ADD INDEX `multiple_query` (`time_type`, `last_time`, `node`, `update_time`);

-- `redis_node`表操作,增加索引
ALTER TABLE redis_node ADD INDEX `multiple_query` (`cluster_id`, `host`, `port`);
  1. 修复节点状态及集群状态在某些情况下不准确问题
    升级前请务必执行以下命令
use redis_manager;
ALTER TABLE `redis_node` ADD COLUMN `in_cluster` tinyint(1) DEFAULT 0 AFTER `link_state`;
ALTER TABLE `redis_node` ADD COLUMN `run_status` tinyint(1) DEFAULT 0 AFTER `in_cluster`;

关于集群状态的定义如下

HEALTH: ok
BAD: can't connect or cluster info state is not ok
WARN: redis node not good(run_status, in_cluster, link_state, flags, node_role)
  1. 集群告警节点信息增加
    在节点状态不好时,将提供以下信息
run_status: 是否在运行
in_cluster: 是否在集群中
link_state: 节点连接状态, cluster 模式依赖 cluster nodes 命令,其他模式依赖 run_status
flags: 节点标志, cluster 模式依赖 cluster nodes 命令,standalone 模式依赖 info 命令,sentinel 默认master
node_role: MASTER, SLAVE, UNKNOWN,此字段依赖 flags,如果无法得出,则为UNKNOWN
  1. 修复cluster模式可能无法查询问题

  2. 修复集群安装时可能无法查看安装log问题
    移除websocket

  3. 增加当前主机的IP配置
    新增 redis-manager.installation.current-host: xxx
    自动获取主机IP方法有时无法获取可使用的IP,如果遇到此问题,请在application.yml中配置