【Spring Cloud】Redis緩存接入監控、運維平臺CacheCloud

CacheCloud
CacheCloud提供一個Redis云管理平臺:實現多種類型(Redis Standalone、Redis Sentinel、Redis Cluster)自動部署、解決Redis實例碎片化現象、提供完善統計、監控、運維功能、減少運維成本和誤操作,提高機器的利用率,提供靈活的伸縮性,提供方便的接入客戶端。
項目主頁: https://github.com/sohutv/cac...

image

image

改造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本命年 ? 汪汪汪!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284637.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284637.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284637.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[Win10應用開發] 使用 Windows 推送服務 (WNS)

前言 Windows 推送服務&#xff08;WNS&#xff09;也是 Win10 通知機制中的一種&#xff0c;今天與大家一起學習一下有關WNS的相關知識。使用 Windows 推送服務的前提是你需要有一個微軟開發者賬號&#xff0c;這樣才能得到一些合法的密鑰信息用于與WNS服務器完成通訊操作。 …

Windows 11 新版 25158 推送!全新搜索框和圖標、小組件動態內容和通知標記

面向 Dev 頻道的 Windows 預覽體驗成員&#xff0c;微軟現已推送 Windows 11 預覽版 Build 25158。主要變化1.微軟宣布為 Windows 11 搜索引入全新視覺體驗&#xff0c;由搜索框或重新設計的搜索圖標呈現。目前該功能僅向部分 Windows 預覽體驗成員推出&#xff0c;將在未來向所…

Python之路【第一篇】:環境搭建

虛擬機安裝 下載VMwareWorkstation以及centos,安裝完VMwareWorkstation&#xff0c;創建一個虛擬機&#xff0c;然后在新創建的虛擬機上運行centos linux環境搭建 公司開發使用linux的原因&#xff1a;穩定、安全、開源 在虛擬機中使用centos這個版本&#xff0c;作為服務器端的…

【BIM入門實戰】Revit創建地形的幾種方法及優缺點

Revit在體量和場地選項卡的【地形表面】工具可以創建三維地形,有三種方法:放置點、指定點文件和導入實例文件、傾斜攝影點云技術和InfraWorks地形生成。 文章目錄 1. 放置點2. 指定點文件3. 導入實例文件4. 傾斜攝影點云技術5. InfraWorks地形生成1. 放置點 放置點功能位于體…

2024年起重機司機(限門式起重機)證考試題庫及起重機司機(限門式起重機)試題解析

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 2024年起重機司機(限門式起重機)證考試題庫及起重機司機(限門式起重機)試題解析是安全生產模擬考試一點通結合&#xff08;安監局&#xff09;特種作業人員操作證考試大綱和&#xff08;質檢局&#xff09;特種設備作…

微服務架構下的統一身份認證和授權

一、預備知識 本文討論基于微服務架構下的身份認證和用戶授權的技術方案&#xff0c;在閱讀之前&#xff0c;最好先熟悉并理解以下幾個知識點&#xff1a; 微服務架構相關概念&#xff1a;服務注冊、服務發現、API 網關身份認證和用戶授權&#xff1a;SSO、CAS、OAuth2.0、JW…

使用vh來制作高度自適應頁面和元素垂直居中

為什么80%的碼農都做不了架構師&#xff1f;>>> vh單位 vh是CSS3中的一個長度單位&#xff0c;其值為&#xff1a;100vh 視窗高度。即如果窗口高度為500px&#xff0c;那么 1vh 5px。具體的值會隨著瀏覽器視窗高度的改變而實時改變&#xff0c;因此可以利用這個單…

傳智168期JavaEE struts2杜宏 day32~day33(2017年2月15日23:27:09)

struts2學習完畢&#xff0c;寒假學習效率還不錯。 筆記鏈接 鏈接&#xff1a;http://pan.baidu.com/s/1boBJLVp 密碼&#xff1a;wwl4轉載于:https://www.cnblogs.com/huangtao1996/p/6403886.html

GitLab的安裝、配置、使用

前言上周去參與“中國數字經濟創新發展大會”了&#xff0c;然后又忙新項目的事情&#xff0c;博客又有一段時間沒有更新&#xff0c;今天周一事情比較少&#xff0c;立刻開始寫文&#xff0c;最近有挺多值得記錄的東西~進入正文&#xff0c;最近我們搭了個Gitlab&#xff0c;并…

【BIM入門實戰】Navisworks2018簡體中文安裝教程(附安裝包下載)

Navisworks是Autodesk公司開發的一款三維模型可視化軟件,它以輕量化的運行方式進行BIM成果的后期處理及整合,是一款非常實用的軟件。基于Navisworks,項目的參建方可以在施工前進行模擬施工,以達到減少返工、縮短工期、提供經濟效益的目的。 Navisworks同時支持4D和5D模擬,…

微軟 Windows11 Build 22000.71 更新(KB5004252)發布

微軟推出了一個全新的娛樂小工具。這一部件允許用戶查看 Microsoft Store 中可用的新電影和精選電影。選擇一部電影會引導用戶到 Microsoft Store 查看有關該影片的更多信息。 7 月 16 日消息 今日凌晨&#xff0c;微軟宣布向預覽體驗計劃用戶發布 Windows 11 Build22000.71 更…

Python入門教程之Python保留字符大全

Python中的保留字不能用作常數或變數&#xff0c;或任何其他標識符名稱。所有 Python 的關鍵字只包含小寫字母。 andexecnotassertfinallyorbreakforpassclassfromprintcontinueglobalraisedefifreturndelimporttryelifinwhileelseiswithexceptlambdayield轉載于:https://blog.…

Linux操作系統基礎解析之(五)——grep命令家族及正則表達式初識

grep號稱文本處理三劍客之一&#xff0c;雖然說是三劍客中功能最少也是最簡單的&#xff0c;但仍然不能小覷。 grep的全稱為&#xff1a;Global search REgular expression and Print out the line&#xff0c;即&#xff1a;全面查找正則表達式并將匹配的行顯示出來。 那么這…

Ubuntu16.04換源

Ubuntu16.04換源 轉載于:https://www.cnblogs.com/xielisen/p/6404607.html

【BIM入門實戰】Revit模型導入到第三方軟件方法匯總

本文以案例的方式,匯總展示了Revit模型導入到ArcGIS Pro、3ds max、Navisworks、Lumion、InfraWorks等的方法。 文章目錄 1. Revit導入ArcGIS Pro2. Revit導入3ds Max3. Revit導入Navisworks4. Revit導入Lumion5. Revit導入InfraWorks1. Revit導入ArcGIS Pro ArcGIS Pro2.8可…

Blazor University (37)JavaScript 互操作 —— JavaScript 啟動過程

原文鏈接&#xff1a;https://blazor-university.com/javascript-interop/javascript-boot-process/JavaScript 啟動過程在 Blazor 啟動過程中&#xff0c;瀏覽器將在 Blazor 初始化之前創建 HTML 文檔&#xff0c;這意味著從引導 HTML 引用的任何 JavaScript 都將立即加載&…

git clone出現 fatal: unable to access ‘https://github.com/...‘的解決辦法

錯誤信息&#xff1a; fatal: unable to access https://github.com/JackieZheng/**.git/: OpenSSL SSL_read: Connection was reset, errno 10054 清除代理即可 git config --global --unset http.proxy git config --global --unset https.proxy

時代聚焦AI安全——可解釋性

今年的NIPS多集中在人工智能安全上&#xff0c;此外精彩的部分還有凱特克勞福德關于人工智能公平性問題上被忽視的主題演講、ML安全研討會、以及關于“我們是否需要可解釋性&#xff1f;”可解釋ML討論會辯論。 值校準文件 逆向獎勵設計是為了解決RL代理根據人類設計的代理獎勵…

【BIM入門實戰】渲染器Vray for 3d max 2018圖文安裝教程

VRay是由chaosgroup和asgvis公司出品的一款高質量渲染軟件。VRay是業界最受歡迎的渲染引擎。基于V-Ray 內核開發的有VRay for 3ds max、Maya、Sketchup、Rhino等諸多版本,為不同領域的優秀3D建模軟件提供了高質量的圖片和動畫渲染。方便使用者渲染各種圖片。 Vray for 3d max …

Android--Activity四種啟動模式

launchMode在多個Activity跳轉的過程中扮演著重要的角色&#xff0c;它可以決定是否生成新的Activity實例&#xff0c;是否重用已存在的Activity實例&#xff0c;是否和其他Activity實例公用一個task里。這里簡單介紹一下task的概念&#xff0c;task是一個具有棧結構的對象&…