原创 《Java 併發編程實戰》--讀書筆記

Java 併發編程實戰 注: 極客時間《Java 併發編程實戰》–讀書筆記 GitHub:https://github.com/ByrsH/Reading-notes/blob/master/Concurrency/Java併發編

原创 14.7.1 InnoDB Locking

本節主要講述 InnoDB 引擎使用的鎖類型 共享鎖和排他鎖 意向鎖 行鎖 間隙鎖 Next-Key Locks 插入意向鎖 自增鎖 Predicate Locks for Spatial Indexes Shared and

原创 RabbitMQ CPU 佔用過高優化

背景 服務器上搭建的 RabbitMQ 在併發量不是很大的情況下 CPU 佔用竟然達到了 40% 左右,這種情況第一感覺是不科學的,推測應該是使用不當或哪裏配置不合理造成的。 問題排查 首先通過 top 命令查看到 CPU 和 內

原创 爲什麼程序中突然多了 200 個 Dubbo-thread 線程

背景 在某次查看程序線程堆棧信息時,偶然發現有 200 個 Dubbo-thread 線程,而且大部分都處於 WAITING 狀態,如下所示: "Dubbo-thread-200" #160932 daemon prio=5 os

原创 MySQL表未加索引,引發的線上事故

背景 現象 公司的APP突然出現響應很慢,並伴有登錄不了的情況。 服務端架構 公司服務端採用分佈式架構,服務間通過 RPC 訪問,使用公司自研 RPC 框架。 問題分析 業務日誌 通過查看日誌文件,發現有很多服務間的調用時間消耗在

原创 記一次 OOM 排查過程

背景 在後端服務改爲在 Docker + Kubernetes 上部署後沒多久,程序就由於 java.lang.OutOfMemoryError: Java heap space 原因退出重新啓動。 問題分析 下面是日誌文件的最

原创 Java 程序 CPU 佔用高問題排查

背景 有時候部署在 Linux 上的 Java 程序佔用的 CPU 會突然飆高,然後會持續一段時間。此時就需要找到是什麼原因導致的 CPU 高,然後解決它。大致過程是:找出佔用 CPU 較高的線程PID --〉輸出 Java 程序

原创 分佈式系統《彈力設計之熔斷、限流、降級》--讀書筆記 && 框架選型

目錄 熔斷設計 限流設計 降級設計 框架選型 熔斷設計 熔斷器模式是用來防止應用程序不斷地嘗試執行可能會失敗的操作,使得應用程序可以繼續執行,而不會浪費 CPU 時間去等待長時間的超時產生。 時序圖 (本圖來自 Martin

原创 com.mysql.jdbc.NonRegisteringDriver 內存泄漏

問題描述 某天監控突然報警服務器的內存佔用較高,然後登陸服務器發現一個連接數據庫的服務的內存佔用很高,而且還在不斷地上漲,於是通過 jmap 命令生成堆 dump文件(jmap -dump:format=b,file=rds.bi

原创 設計模式之責任鏈模式

定義 使多個對象都有機會處理請求,從而避免了請求的發送者和接受者之間的耦合關係。將這些對象連成一條鏈,並沿着這條鏈傳遞該請求,直到有對象處理它爲止。 通用類圖 具體實現 責任鏈模式的目的是爲了讓發送者和接收者解耦,發送者不需

原创 設計模式之命令模式

定義 將請求封裝成一個對象,從而讓你使用不同的請求把客戶端參數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢復功能。 通用類圖 具體實現 命令模式就是把命令(動作執行)封裝成對象,請求調用者執行。類圖中有幾種不同的角

原创 Spring boot 項目提示某一類型的 bean 找不到

現象 項目啓動輸出: Description: Field pushTokenDao in com.bullyun.rule.core.strategy.AppMsgActionStrategy required a bean

原创 IDEA maven 項目修改代碼不生效,mvn clean、install 後才生效

現象 正常情況下修改完代碼,運行項目就會立即生效的。但是突然有一天發現運行的還是老的代碼,新代碼根本沒有生效。通過 mvn clean、 install 後,再運行就可以了,但是這樣明顯是不正常的,而且也非常麻煩。 解決方案 重新

原创 《MySQL實戰45講》--讀書筆記

MySQL 實戰45講 注: 極客時間《MySQL實戰45講》–讀書筆記 GitHub:https://github.com/ByrsH/Reading-notes/blob/master/Database/MySQL%E5%AE

原创 設計模式之策略模式

定義 定義一組算法,將每個算法都封裝起來,並且使它們之間可以互換。 通用類圖 具體實現 策略模式就是當滿足不同條件時,使用不同的策略執行。主要用到了面向對象的繼承和多態機制。 抽象的策略角色定義了每個策略或算法必須具有的方法和屬