原创 使用Redis鎖

使用Redis鎖 配置redisClient 獲取redis集羣地址 Config config = new Config(); Config.useCluterServices().addNodeAddress(no

原创 SpringBoot異步操作

異步方法 import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Async; import org.springf

原创 Redis故障

Redis故障 雪崩 Redis大面積出現失效如過期,導致壓力全放在Mysql,導致對Mysql 降維打擊,多米諾骨牌效應,導致其他接口也會崩坍,重啓也會出現同樣情況 解決方法 設置隨機過期時間, 設置永不過期 熱點數據放

原创 Java 多線程技能

使用多線程 extends Thread new MyThread() implements Runnable new Thread(new MyRunnable) 共享變量使用synchronized 進行加鎖

原创 Java—可變參數

要求 /** * 功能描述 * 1. 可變參數最多有一個,放在參數最後 * 2. 可變參數使用 Type ... parameterName 表示 * 3. arr 可以爲 0 - n

原创 SRE Google運維解密——第9章 簡單化

第9章 簡單化 系統的穩定性與靈活性 通過流程,實踐以及工具,來提高軟件的可靠性 SRE最小化路程對於開發人員的靈活性造成的影響 可靠的流程會提高研發人員的靈活性 乏味是一種美德 負責的系統不引入意外複雜度 不斷努力消

原创 SSO單點登錄

sso 單點登錄 同域下的單點登錄 Cookie 的域設置爲頂級域 單點登錄 單點登錄的原理與簡單實現 a. 用戶訪問系統1的受保護資源,系統1發現用戶未登錄,跳轉到sso認證中心,並將自己的地址作爲參數 b. sso認

原创 SRE Google運維解密 第11章 on-call輪值

on-call輪值 保證可以隨時相應緊急問題,不管工作時間還是非工作時間 on-call 工程師的一天 on-call工程師承諾在分鐘級別執行生產系統的維護需求,一般面向終端用戶5分鐘,非緊急30分鐘。 響應時間與業務可靠性

原创 SRE Google運維解密——第10章 基於時間序列數據進行有效報警

第10章 基於時間序列數據進行有效報警 一個大型的系統不應該要求運維人員持續關注其中使用的無數個小組件,而是應該彙總所有的信息,自動拋棄其中的異常情況。 監控系統應該從高級服務質量目標層次進行報警,但是也應該保持足夠的力度,可

原创 SRE Google運維解密——第7章 Google的自動化系統的演進

第7章 Google的自動化系統的演進 ================================================================== 自動化 與GoogleSRE 聯繫 自動化價值 一致

原创 SRE Google運維解密——第8章 發佈工程

第8章 發佈工程 發佈工程與產品研發部門的軟件工程師,以及SRE一起定義發佈軟件的過程的全部步驟——包括軟件是如何存儲於源代碼倉庫中,構建時如何進行測試,打包,最終部署的 發佈工程師角色 開發軟件,爲Google 提供各種

原创 在服務器上配置數據庫

配置 centos mysql 過程 rpm -qa | grep mysql 查看是否已經安裝mysql ,沒安裝跳轉到第二步 1.1 rpm -e mysql //卸載mysql 下載 wg

原创 使用Python刪除目錄下重複圖片

方法 判斷文件大小是否相同 判斷md5是否相同 步驟 獲得目錄下所有文件 for root,dirs,files in os.walk(path): for file in files: real_

原创 Window10 && Ubuntu18.04 雙系統安裝後,使用EasyBCD 進入Grub 界面 問題解決。

    安裝雙系統之後沒有Ubuntu18.04的系統入口。查網絡教程之後使用EasyBCD 進行入口修復,具體方法自行百度。操作完成後只能進入grub 命令行界面。那麼恭喜你,成功踩中了萬千坑中的一個。下面是填坑的過程。     使用U

原创 Sort Algorithm

1. DirectInsert sort   直接插入排序,將所要排序的數字放到有序隊列中 void DirectInsert(int a[10] , int num){ int i = 0; int j ; int temp ;