原创 Activiti7 ID生成器

Activiti 有自己的主鍵生成策略 總結一下主鍵生成策略 1、act_ge_property表中next.dbid保存id的初始值(代碼中用oldValue表示) 2、每次獲取2500個id,相當於預佔了2500個i

原创 Sentinel 源碼學習

引入依賴 <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-core</artifactId> <version>1.8.7</

原创 MySQL查看bin_log日誌

有這樣一段業務邏輯,首先保存業務數據,然後發送報文,最後確認報文回來以後更新業務數據。僞代碼大概是這樣的: /** * 保存數據,並調用發送報文方法 */ public void save() { // 0.保存數據 /

原创 Dubbo本地調試方法

方法一:用版本號來區分 比如,開發環境上跑的服務版本是1.0.0,那麼爲了在本地打斷點調試某個服務,可以在本地啓動,將version設置爲2.0.0 服務提供者 @DubboService(version = "2.0.0") public

原创 MySQL InnoDB加鎖規則分析

1.  基礎知識回顧 1、索引的有序性,索引本身就是有序的 2、InnoDB中間隙鎖的唯一目的是防止其他事務插入間隙。間隙鎖可以共存。一個事務取得的間隙鎖並不會阻止另一個事務取得同一間隙上的間隙鎖。共享和獨佔間隔鎖之間沒有區別。它們彼此

原创 MySQL Performance Schema

1.  Performance Schema Lock Tables MySQL安裝以後,我們會看到有這麼兩個數據庫:information_schema 和 performance_schema ,它們對於排查問題是非常有用的。 Perf

原创 SpringBoot Seata 死鎖問題排查

現象描述:Spring Boot項目,啓動的時候卡住了,一直卡在那裏不動,沒有報錯,也沒有日誌輸出 但是,奇怪的是,本地可以正常啓動 好吧,姑且先不深究爲什麼本地可以啓動而部署到服務器上就無法啓動的問題,這個不是重點,重點是怎麼讓它啓動

原创 Maven多模塊項目版本統一管理

如圖所示,項目中定義了這樣幾個模塊: pdd-workflow-build :定義項目版本,及全局配置 pdd-workflow-dependencies :外部依賴管理,統一管理所有用到的外部依賴的版本 pdd-workflow-se

原创 票據系統(補充)

關於票據系統設計在之前的博客中也聊過,今天做一個補充 1、架構 票據系統主要就是和票交所進行交互,圍繞這一核心,我們把系統劃分爲三大部分,分別是:票據網關服務、票據業務服務、票據庫存服務。 網關服務:對接票交所,負責和票交所的交互,主要是收

原创 MyBatis-Plus批量插入方法saveBatch

1. saveBatch能否提高插入的效率? 先說結論,saveBatch()方法也是一條一條的插入,也就是說它會產生多條insert語句,而不是一條insert語句,所以它不是真正的批量插入,更不能提高插入效率。 看看代碼就全明白了

原创 Seata 全局鎖等待超時 問題排查

生產環境,一個簡單的事務方法,提交失敗,報 Global lock wait timeout 僞代碼如下: @GlobalTransactional(rollbackFor = Exception.class,timeoutMills =

原创 Activiti 7 啓動流程實例

首先,考慮下面這樣一個流程圖 主要的流程定義如下: <process id="demo" name="demo" isExecutable="true"> <startEvent id="sid-aee4f5b6-6b26-423

原创 Git 分支與合併

1.  Git 對象 Git 的核心部分是一個簡單的鍵值對數據庫。可以向 Git 倉庫中插入任意類型的內容,它會返回一個唯一的鍵,通過該鍵可以在任意時刻再次取回該內容。 所有內容均以樹對象和數據對象的形式存儲,其中樹對象對應了 UNIX 中

原创 統一日誌輸出打印POST請求參數

衆所周知,request.getInputStream()只能調一次。如果希望在請求進入Controller之前統一打印請求參數(攔截器或過濾器),又不影響業務,我們只能將獲取到的輸入流緩存起來,後續都從緩存中獲取即可。 首先,自定義一個S

原创 Spring事務使用注意事項

Spring提供的事務使用起來很方便,一個@Transactional註解就搞定全部,但是如果不注意,也會踩坑 提到事務就應該想到至少以下幾點: 1、在事務方法中加鎖,可能會導致鎖失效 無論是JVM自帶的鎖,還是分佈式鎖,都有可能出現沒鎖住