原创 簡單工廠,工廠方法,抽象工廠思想深刻理解

背景: 話說改革開放的時候,互聯網未普及的時候,中國境內的手機都是去華強北進貨,然後分散到中國各地商場,隨着科技的發張,後來發展成各個專賣店,最後發展成各個流水線生產手機。這一系列的變化特別像我們工廠模式的進階,下面帶你一起來探討

原创 Seata帶你走進分佈式事務的大門

在2019年1月,Seata正式對外開源。 Seata是什麼呢? Seata 是一款開源的分佈式事務解決方案,致力於在微服務架構下提供高性能和簡單易用的分佈式事務服務。在 Seata 開源之前,Seata 對應的內部版本在阿里經濟

原创 設計模式之單例模式的四種創建方法詳解

設計模式分類 創建型:共5種 工廠方法模式,抽象工廠模式,單例模式,建造者模式,原型模式 結構型:共7種 適配器模式,裝飾器模式,代理模式,外觀模式,橋接模式,組合模式,享元模式 行爲型:共11種 策略模式,模板方法模

原创 Error: Could not find or load main class ‐XX:+UseSerialGC

"C:\Program Files\Java\jdk1.8.0_131\jre\bin\java.exe" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:2896,sus

原创 StringBuilder和String“+”號拼接,哪個效率高呢

對於程序本身的優化,可以借鑑很多前輩們的經驗,但是有些時候, package com.evan.springboot.study; import com.sun.scenario.effect.impl.sw.sse.SSEBl

原创 分佈式事務JTA原理以及詳細實現demo

背景 由於項目使用到了兩個數據源,且在同一個方法裏對這兩個數據源有寫的操作,所以這裏不免需要保持事務一致性。 解決方案 解決該問題需要使用到分佈式事務,常見的分佈式事務,兩階段提交方案/XA方案(行業一般稱爲2PC)方案,T

原创 springboot JMX 連接VisualVm

後臺start啓動 nohup java -Xms256m -Xmx256m -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=35651

原创 樂觀鎖實現分佈式鎖

** 樂觀鎖 ** 就是說特別樂觀,比如說每次去吃飯的時候,都認爲窗口沒有人,只有到了吃飯的窗口才看有沒有人,如果有人則去別的地方吃飯。就像系統認爲數據的更新在大多數情況下是不會產生衝突的, 只在數據庫更新操作的提交的時候纔對數據

原创 org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument

在我們前一遍博客中有談到springboot基於validation寫出簡介優雅的restful接口 springboot基於validation寫出簡介優雅的restful接口 當我們把這個真正加到生產的項目中時發現下面這個奇怪

原创 JVM調優只JVM工具VisualVM

JVM運行參數 在jvm中有很多的參數可以進行設置,這樣可以讓jvm在各種環境中都能高效的運行,絕大部分的參數保持默認即可。 JVM的參數主要分爲三類: 標準參數 -Help -version -X參數 -Xint -Xcomp

原创 回表和索引覆蓋

簡介 mysql的innodb引擎查詢時無法使用索引覆蓋的場景下,需要做回表操作獲取記錄所需要的字段。Innodb有兩大類索引,一類是集聚索引(Clustered Index),一類是普通索引(Secondary Index)。

原创 Navicat通過SSH連接數據庫

背景:如下圖所示 我們使用的雲數據庫RDS的時候,數據嘛,公司最重要的資料,一般都是會設置白名單的,然後一般我們本地的ip地址呢都是動態刷新的,快則一天刷新一次。 尷尬的就出現了,如果我們本地連接的話,那是不是得每天更新一次白

原创 LCN(使用springCloud)分佈式事物原理

LCN官網 1. 分佈式事物產生的背景 在微服務環境下,因爲會根據不同的業務拆分成不同的服務,比如說會員服務,訂單服務,商品服務等。讓專業的人做專業的事,每個服務都有自己獨立的數據庫,獨立運行,互不影響。 服務與服務之間通訊採用

原创 四種常用線程池介紹

線程池概念: 線程池就是首先創建一些線程,它們的集合稱爲線程池。使用線程池可以很好的提高性能,線程池在系統啓動時即創建大量空閒的線程,程序將一個任務傳給線程池,線程池就會啓動一個線程來執行這個任務,執行結束以後,該線程並不會死亡

原创 Mysql鎖機制

** 一,概述 ** 表級鎖:開銷小,加鎖快;不會出現死鎖,發生鎖衝突概率高,併發度最低 行級鎖:開銷大,加鎖慢;會出現死鎖,發生鎖衝突概率最低,併發度也高 頁面鎖:開銷和加鎖介於表級和行級之間;會出現死鎖;鎖粒度介於表鎖和行鎖之