好多年沒發博,最近有時間整理些東西,分享給你們。html
全部內容都在github項目liuzhibin-cn/my-demo中,基於SpringBoot,演示Dubbo微服務 + Mycat, Sharding-Proxy分庫分表 + Seata分佈式事務管理 + ZipKin, SkyWalking, PinPoint性能分析鏈路跟蹤APM工具,有詳細文檔,能夠快速運行java
package.sh爲打包腳本:git
sh package.sh
:最簡單運行方式,使用單個MySQL數據庫、nacos註冊中心,運行4個Dubbo服務和1個Web應用;sh package.sh -mycat
:使用Mycat分庫分表;sh package.sh -sharding-proxy
:使用Sharding-Proxy分庫分表;sh package.sh -seata
:使用Seata分佈式事務管理;sh package.sh -zipkin
:使用ZipKin進行鏈路跟蹤、性能分析;sh package.sh -pinpoint
:使用PinPoint進行鏈路跟蹤、性能分析;sh package.sh -skywalking
:使用SkyWalking進行鏈路跟蹤、性能分析;參數能夠組合,例如sh package.sh -mycat -seata -zipkin
,分庫分表參數只能二選一,APM工具只能三選一。github
最簡單運行方式操做步驟:web
mydemo-dn1
單庫便可。sh package.sh
,Windows環境裝了git bash就能夠運行。運行演示項目:
依次啓動服務和Web應用:sql
java -jar item-service\target\item-service-0.0.1-SNAPSHOT.jar java -jar stock-service\target\stock-service-0.0.1-SNAPSHOT.jar java -jar user-service\target\user-service-0.0.1-SNAPSHOT.jar java -jar order-service\target\order-service-0.0.1-SNAPSHOT.jar java -jar shop-web\target\shop-web-0.0.1-SNAPSHOT.jar
經過http://localhost:8090/shop訪問,執行操做查看效果;數據庫
阿里雲分佈式事務管理GTS的開源版Seata,2019年1月開源出來,1.0.0版已經發布。相關概念、部署和使用方法參考Seata分佈式事務管理框架概覽。apache
Seata提供AT、TCC、Saga三種柔性事務模式,AT模式對應用幾乎透明,使用方便,目前來看:bash
本項目演示了使用Mycat和Sharding-Proxy進行分庫分表,相關概念、部署和使用方法,參考MyCat分庫分表概覽、Sharding-Proxy分庫分表概覽,這2個分庫分表開源方案與DRDS對比,參考DRDS產品概覽。架構
Mycat、Sharding-Proxy和DRDS都實現了MySQL協議,成爲獨立的中間件,將分庫分表、讀寫分離等數據存儲的彈性伸縮方案與應用隔離,而且實現語言無關。
演示項目支持PinPoint、SkyWalking、ZipKin三種APM工具進行全鏈路跟蹤和性能分析,相關概念、部署和使用方法,參考PinPoint部署和使用、SkyWalking部署和使用、ZipKin部署和使用。
三種APM工具對比: