cachecloud 使用几个月的情况与坑

原创
2018/08/28 10:19
阅读数 1W

前言

单集群redis cluster 转 cachecloud 几个月来,遇到一些情况与问题的总结.

版本问题

mysql 升级到5.7

默认 cachecloud 底层 db mysql 版本为:MySQL 5.5,升级 mysql 到5.7后出现不兼容sql.例如:

select any_value(app_id) app_id,instance_id,any_value(instance_host) instance_host,any_value(instance_port) instance_port,count(1) as exceptionCount from app_client_exception_minute_stat

解决方案1

修改 mysql 参数,使其兼容老版本.

解决方案2

修改对应 mysql, 我们选择的就是这个方案.只要修改

  • AppStatsDao.xml
  • AppClientCostTimeTotalStatDao.xml
  • AppClientExceptionStatDao.xml

三个 xml 中不兼容函数即可.

redis 版本问题

默认cachecloud-init.sh 初始化机器中 redis 版本为 redis-3.0.7.tar.gz.当我升级 redis 到一个较高版本redis-3.2.11.tar.gz时候.出现 bug. 无法连接到实例.

Protected-mode 是为了禁止公网访问redis cache,加强redis安全的。

它启用的条件,有两个:

1) 没有bind IP

2) 没有设置访问密码

但是我们的 redis 是内网环境访问,不会暴露给外网.

解决方案,initsql 添加

insert into instance_config(config_key,config_value,info,update_time, type, status) values('protected-mode','no','开启安全模式. redis3.2及以上需要参数',now(),6,1); insert into instance_config(config_key,config_value,info,update_time, type, status) values('protected-mode','no','开启安全模式. redis3.2及以上需要参数',now(),5,1);

redis 监控数据的无限增加问题.

对 redis监控数据落地到mysql 表 standard_statistics. 默认系统配置是不开启清理数据.

4个月来,光测试环境就单表32g,670w 数据.

解决: 先联系 db, 人工对表数据清理,后续,开启定时清理.

机器监控的问题

cachecloud 默认对机器有专门的运维与监控,对机器的 job 没有开启.

解决: find ServerJob, 打开注释代码即可. redis 机器同时加入cachecloud-open-web 中的 nmon(这里看相关文档.)

兼容 spring-data-redis 遇到的问题

制作 spring-boot-starter-data-cachecloud中,刚开始是依赖spring-data-redis.1.8.4.RELEASE.后续升级到1.8.7发现, spring-data-redis api 变动.

JedisClusterNodeResourceProvider 构造方法变动. 后续制作针对1.8.7以上版本的

redis水平扩容的问题

cachecloud 对水平扩容有些问题.进行了改造.

展开阅读全文
打赏
0
5 收藏
分享
加载中
更多评论
打赏
0 评论
5 收藏
0
分享
返回顶部
顶部