CacheCloud
CacheCloud提供一个Redis云管理平台:实现多种类型(Redis Standalone、Redis Sentinel、Redis Cluster)自动部署、解决Redis实例碎片化现象、提供完善统计、监控、运维功能、减少运维成本和误操作,提高机器的利用率,提供灵活的伸缩性,提供方便的接入客户端。
项目主页: https://github.com/sohutv/cac...

改造RedisConnectionFactory

/*** 根据缓存策略的不同,RedisConnectionFactory不同* 示例是单机模式。** @return*/
@Bean
public RedisConnectionFactory redisConnectionFactory() {while (true) {try {LOCK.tryLock(100, TimeUnit.MILLISECONDS);/*** 心跳返回的请求为空;*/String response = HttpUtils.doGet("http://localhost:5005/cache/client/redis/standalone/10000.json?clientVersion=1.0-SNAPSHOT");if (response == null || response.isEmpty()) {continue;}JSONObject jsonObject = null;try {jsonObject = JSONObject.parseObject(response);} catch (Exception e) {}if (jsonObject == null) {continue;}/*** 从心跳中提取HostAndPort,构造JedisPool实例;*/String instance = jsonObject.getString("standalone");String[] instanceArr = instance.split(":");if (instanceArr.length != 2) {continue;}//收集上报数据ClientDataCollectReportExecutor.getInstance("http://localhost:5005/cachecloud/client/reportData.json");String password = jsonObject.getString("password");String host = instanceArr[0];String port = instanceArr[1];JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();jedisConnectionFactory.setPassword(password);jedisConnectionFactory.setHostName(host);jedisConnectionFactory.setPort(Integer.parseInt(port));return jedisConnectionFactory;} catch (InterruptedException e) {logger.error("error in build().", e);}}
}

改造 jedis-2.9.0

Connection.java

/*** 命令捕获,异常保存* @param cmd* @param args*/
public void sendCommand(final ProtocolCommand cmd, final byte[]... args) {try {//统计开始UsefulDataModel costModel = UsefulDataModel.getCostModel(threadLocal);costModel.setCommand(cmd.toString().toLowerCase());costModel.setStartTime(System.currentTimeMillis());connect();Protocol.sendCommand(outputStream, cmd, args);} catch (JedisConnectionException ex) {UsefulDataCollector.collectException(ex, getHostPort(), System.currentTimeMillis());broken = true;throw ex;}
}

JedisClusterCommand.java

private T runWithRetries(byte[] key, int attempts, boolean tryRandomNode, boolean asking) {if (attempts <= 0) {JedisClusterMaxRedirectionsException exception = new JedisClusterMaxRedirectionsException("Too many Cluster redirections? key=" + SafeEncoder.encode(key));//收集UsefulDataCollector.collectException(exception, "", System.currentTimeMillis(), ClientExceptionType.REDIS_CLUSTER);throw exception;}
}

更新spring-boot-starter-data-redis依赖

 <!--Redis-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><exclusions><exclusion><artifactId>jedis</artifactId><groupId>redis.clients</groupId></exclusion></exclusions>
</dependency>
<dependency><groupId>com.sohu.tv</groupId><artifactId>cachecloud-open-client-redis</artifactId><version>1.0-SNAPSHOT</version><exclusions><exclusion><artifactId>jedis</artifactId><groupId>redis.clients</groupId></exclusion></exclusions>
</dependency>
<!--上步改造后编译的jar-->
<dependency><groupId>com.github.pig</groupId><artifactId>pig-cache-cloud-jedis</artifactId><version>2.9.1</version>
</dependency>

部署服务war

这一步直接参考 cachecloud 的文档即可

总结

  1. 源码,参考pig: https://gitee.com/log4j/pig
  2. 关于pig, 这是一套微服务应用的实践基于Spring Cloud、Spring Security Oauth2.0开发企业级认证与授权,提供常见服务监控、链路追踪、日志分析、缓存管理、任务调度等实现
  3. 改造写于2017-2018的跨年夜,文章整理与2018.1.1,真惨,不过我喜欢 ?
  4. 2017 失去很多,2018本命年 ? 汪汪汪!

【Spring Cloud】Redis缓存接入监控、运维平台CacheCloud相关推荐

  1. 工业物联网解决方案:数控机床数据采集监控运维平台

    目前,数控机床在工业生产中被广泛适用,成为智能制造的重要支撑.面对数控机床潜在的故障风险和停机维护需求,存在维护不及时.维护成本高.缺乏数字化手段等问题,极大影响到生产效率和生产质量,是制造业厂商需要 ...

  2. Redis缓存接入监控、运维平台CacheCloud

    CacheCloud CacheCloud提供一个Redis云管理平台:实现多种类型(Redis Standalone.Redis Sentinel.Redis Cluster)自动部署.解决Redi ...

  3. 口罩机远程监控运维解决方案

    口罩机远程监控运维系统解决方案 1.口罩机远程监控运维系统项目需求分析 管理角度分析 1.互联网时代,如何进行口罩机及人员管理的信息化? 2.物联网时代,如何实现口罩机健康及生产状态数字化? 3.智能 ...

  4. 更换jdk版本_滴滴夜莺发布 v3 版本,从运维监控演化成了运维平台

    Nightingale 从 3 月份开源到现在,过去了半年多点时间,收获了接近 2000 个 github star,300 多个 issue 升级说明 v3.x的版本和v2.x差别巨大,没办法平滑迁 ...

  5. 中国安防服务运营探讨:视频监控运维服务发展趋势

    - 本文转载自<中国安防>2022.3期 - 一.近几年视频监控运维服务由上而下受重视 视频监控系统作为一种防范能力较强的综合系统,以其直观.准确.及时呈现设防区域现场情况.信息设备状态, ...

  6. 《监控运维实践:原则与策略》读书笔记

    原文地址:https://www.lujun9972.win/blog/2022/03/17/<监控运维实践:原则与策略>读书笔记/index.html 目录 书本信息 监控实施的原则 反 ...

  7. Spring Boot Redis缓存

    Spring Boot Redis缓存 目录[ 隐藏 ] 1 Spring Boot Redis缓存 1.1 Spring Boot Redis项目设置 1.2 Spring Boot Redis缓存 ...

  8. 2021安防视频监控运维市场回顾和展望

    2021安防视频监控运维市场回顾和展望 --专访弘度科技产品总监李焕佳 摘自<中国安防>2021.12期 随着国家"十四五"规划指出要加快数字化发展.建设数字中国等众多 ...

  9. 互联网公司的监控运维

    监控系统.日志系统.配置管理系统以及部署系统 以前公司在监控.日志分析.应用配置和部署的工作方面都是徒手操作,若将徒手变为自动化,对于上流的互联网公司都急切需要这些自动化管理系统.无数生产的问题以及生 ...

最新文章

  1. Mobile3DRecon:手机上的实时单眼3D重建
  2. android手机数字取证,基于Android智能终端微信应用的数字取证分析模型的研究
  3. docker中部署springboot项目,并且外部访问
  4. mysql 烂泥_烂泥:学习mysql的binlog配置
  5. 科大星云诗社动态20201221
  6. 为什么操作系统会有随机性
  7. 电子计算机什么理论,电子计算机的工作原理是什么?
  8. python pyquery.get()_Python爬虫之PyQuery使用(六)
  9. Java 8“失宠”
  10. 从入门到入土:MySQL完整学习指南,包教包会!
  11. jpython 传入参数_C++嵌入Python程序(二):参数传入及返回
  12. centos7安装zabbix3.4
  13. namenode倒换原因分析
  14. Jzoj3902 游戏
  15. 及时搜索工具下载地址 listary
  16. [Clip团队出品]如何让sb/sb2作品运行在手机上
  17. linux eclipse安装使用教程
  18. 计算机模拟做报童模型,用基于计算机随机模拟的下降法求解报童问题
  19. 牛客多校第九场 Niuniu is practicing typing.(kmp优化)
  20. 奖励 CSDN 社区的领军人物

热门文章

  1. mysql006添加外键约束
  2. 面试官:请手写一个带取消功能的延迟函数,axios 取消功能的原理是什么
  3. 开源自然语言处理工具包hanlp中CRF分词实现详解
  4. 信号为E时,如何让语音识别脱“网”而出?
  5. python:小心类实例的属性动态绑定机制
  6. 分享实录|争议不断地EOS,我们如何才能理性看待?
  7. Laravel Passport里的授权类型介绍
  8. C++和C#的指针小解
  9. activemq 安全连接
  10. jqurey操作radio总结