單集羣redis cluster 轉 cachecloud 幾個月來,遇到一些狀況與問題的總結.mysql
默認 cachecloud 底層 db mysql 版本爲:MySQL 5.5,升級 mysql 到5.7後出現不兼容sql.例如:web
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
redis
修改 mysql 參數,使其兼容老版本.spring
修改對應 mysql, 咱們選擇的就是這個方案.只要修改sql
三個 xml 中不兼容函數便可.api
默認cachecloud-init.sh 初始化機器中 redis 版本爲 redis-3.0.7.tar.gz.當我升級 redis 到一個較高版本redis-3.2.11.tar.gz時候.出現 bug. 沒法鏈接到實例.安全
Protected-mode 是爲了禁止公網訪問redis cache,增強redis安全的。app
它啓用的條件,有兩個:運維
1) 沒有bind IPide
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監控數據落地到mysql 表 standard_statistics. 默認系統配置是不開啓清理數據.
4個月來,光測試環境就單表32g,670w 數據.
解決: 先聯繫 db, 人工對錶數據清理,後續,開啓定時清理.
cachecloud 默認對機器有專門的運維與監控,對機器的 job 沒有開啓.
解決: find ServerJob, 打開註釋代碼便可. redis 機器同時加入cachecloud-open-web 中的 nmon(這裏看相關文檔.)
製做 spring-boot-starter-data-cachecloud中,剛開始是依賴spring-data-redis.1.8.4.RELEASE.後續升級到1.8.7發現, spring-data-redis api 變更.
JedisClusterNodeResourceProvider 構造方法變更
. 後續製做針對1.8.7以上版本的
cachecloud 對水平擴容有些問題.進行了改造.