日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

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

發布時間:2023/12/6 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Spring Cloud】Redis缓存接入监控、运维平台CacheCloud 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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 的文檔即可

總結

  • 源碼,參考pig: https://gitee.com/log4j/pig
  • 關于pig, 這是一套微服務應用的實踐基于Spring Cloud、Spring Security Oauth2.0開發企業級認證與授權,提供常見服務監控、鏈路追蹤、日志分析、緩存管理、任務調度等實現
  • 改造寫于2017-2018的跨年夜,文章整理與2018.1.1,真慘,不過我喜歡 ?
  • 2017 失去很多,2018本命年 ? 汪汪汪!
  • 總結

    以上是生活随笔為你收集整理的【Spring Cloud】Redis缓存接入监控、运维平台CacheCloud的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。