




















好多年没发博,最近有时间整理些东西,分享给大家。
所有内容都在github项目liuzhibin-cn/my-demo中,基于SpringBoot,演示Dubbo微服务 + Mycat, Sharding-Proxy分库分表 + Seata分布式事务管理 + ZipKin, SkyWalking, PinPoint性能分析链路跟踪APM工具,有详细文档,可以快速运行
package.sh为打包脚本:
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工具只能三选一。
最简单运行方式操作步骤:
比较简单,参考Nacos快速开始即可。
建库脚本sql-schema.sql,是演示分库分表用的建库脚本,简单方式运行只需要其中mydemo-dn1单库即可。
配置信息都在parent pom.xml中,包括数据库连接信息、nacos地址等。
执行sh package.sh,Windows环境装了git bash就可以运行。
依次启动服务和Web应用:
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
阿里云分布式事务管理GTS的开源版Seata,2019年1月开源出来,1.0.0版已经发布。相关概念、部署和使用方法参考Seata分布式事务管理框架概览。
Seata提供AT、TCC、Saga三种柔性事务模式,AT模式对应用几乎透明,使用方便,目前来看:
本项目演示了使用Mycat和Sharding-Proxy进行分库分表,相关概念、部署和使用方法,参考MyCat分库分表概览、Sharding-Proxy分库分表概览,这2个分库分表开源方案与DRDS对比,参考DRDS产品概览。
Mycat、Sharding-Proxy和DRDS都实现了MySQL协议,成为独立的中间件,将分库分表、读写分离等数据存储的弹性伸缩方案与应用隔离,并且实现语言无关。
演示项目支持PinPoint、SkyWalking、ZipKin三种APM工具进行全链路跟踪和性能分析,相关概念、部署和使用方法,参考PinPoint部署和使用、SkyWalking部署和使用、ZipKin部署和使用。
三种APM工具对比:
额外的UI功能,可以读取APM工具的数据,自定义开发;
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。