原创 REPEATABLE-READ隔離級別 事務中無法讀到其它事務提交了的最新數據

前言: 業務要求一個簡單的併發控制,使得一條數據只被確認一次,我的方案是 悲觀鎖,就是在事務中先對數據行加鎖(MySQL InnoDB 行鎖基於索引),判斷是否已經確認過,未確認的情況下確認,已確認則事務提交釋放鎖。代碼寫完,結果發現未生

原创 一次OOM故障分析記錄:HeapByteBuffer byte[] 佔用了大量內存

現象: 工作時遇到某個服務老是頻繁重啓,日誌報錯爲OOM 分析: 出現OOM是因爲整個堆內存不夠用了,此時JVM首先嚐試擴展更多的空間,其次GC嘗試回收內存,前兩種方法無果的情況下只能報OOM並退出 可能的情況:內存不夠、內存泄漏 嘗試解

原创 Rocket MQ寫入消息報錯: service not available now, maybe disk full

前言:測試服的一臺kafka好久沒有接收到消息了,看了下日誌,maybe disk full。。。。。 問題分析: 提示很明確嘛,磁盤佔用問題。想來配置broker的時候有個佔比參數 diskMaxUsedSpaceRatio=75%,應

原创 《研磨設計模式》讀書筆記之:橋接模式、訪問者模式

前言:本篇系看完《研磨設計模式》一書的個人理解和總結,可能存在不正確的地方,看時需要持懷疑態度。另外,所有的圖都是示意圖,示意,示。 橋接模式(Bridge): 幾點解釋: 橋接模式的本質在於 分離抽象與實現。 Java中的接口的作用在於

原创 記一次 druid連接池問題排查記錄 (未找到具體原因,最後換成了 Hikari連接池)

前言: 某個項目,開發過程中需要連接多個數據源,多數據源部分就不說了,在Spring Boot中其實就是手動構造不同的 datasource交給IOC容器,然後根據持久層框架 Mabatis 或者是 JPA之類的,明確下 數據源和持久層的

原创 記一次遇到的 MySQL 表結構設計時誤用了 關鍵字和保留字的坑

前言:設計一個很簡單的異常指標推送記錄表,結果沒注意誤用了關鍵字 value 和 保留字  index,結果就各種報錯 各種關鍵字和保留字參照官方文檔  https://dev.mysql.com/doc/refman/5.7/en/ke

原创 gRPC Python client 訪問 Java server 報錯 Method not found

前言:使用 Spring boot 構建的gRPC服務端,然後使用相同的proto文件生成了 Python代碼,然後二者在本地通信,Python服務端報錯 StatusCode.UNIMPLEMENT: Method not found。

原创 Spring Boot 集成Dubbo 多配置啓動時,Dubbo配置不生效

Spring Boot項目使用了多個配置文件,有application.yml 和 application-prod.yml,其中 application.yml中Dubbo配置的Zookeeper地址爲 公網地址, 而 applicat

原创 DUBBO: RpcException: No provider available from registry 一直報錯

網上的答案很多,這裏提 一個點  這個是 DubboMonitor報的錯,首先要看看自己是否有 monitor,沒有的話要把monitor相關的配置去除

原创 Ubuntu sudo:must be setuid root,失手改了usr目錄的權限,在機房的血淚恢復全記錄

前言:失手給了用戶賬號 /usr 目錄的權限,結果 sudo 的時候報 sudo:must be setuid root....,裏面東西都部署好了,不想重裝系統啊。遂,跑到機房一番掙扎,成功恢復。在恢復的過程中,發現很多的教程都只說了一

原创 Canal監聽MySQL變化、將數據投遞RocketMQ,並使用Java客戶端消費MQ消息,部署、編碼過程筆記

前言:最近項目需要監聽MySQL數據變化,並將變化同步到ES中,自己搗鼓了下,利用了Canal、RocketMQ走通了流程,寫個筆記記錄下過程。 一、Mysql開啓bin log,Canal部署 參考Canal官方文檔 https://g

原创 《研磨設計模式》讀書筆記之:裝飾器模式、職責鏈模式

前言:本篇系看完《研磨設計模式》一書的個人理解和總結,可能存在不正確的地方,看時需要持懷疑態度。另外,所有的圖都是示意圖,示意,示。 裝飾器模式(Decorator): 幾點解釋: 裝飾器模式的本質在於,透明的給對象增加新的功能,並且這

原创 《研磨設計模式》讀書筆記之:橋接模式

前言:本篇系看完《研磨設計模式》一書的個人理解和總結,可能存在不正確的地方,看時需要持懷疑態度。另外,所有的圖都是示意圖,示意,示。 橋接模式(Bridge): 幾點解釋: 橋接模式的本質在於 分離抽象與實現。 Java中的接口的作用在於

原创 《研磨設計模式》讀書筆記之:備忘錄模式、享元模式

前言:本篇系看完《研磨設計模式》一書的個人理解和總結,可能存在不正確的地方,看時需要持懷疑態度。另外,所有的圖都是示意圖,示意,示。 備忘錄模式(Memento): 幾點解釋: 備忘錄模式的目的在於在不破壞對象封裝性的前提下,保存對象的