在微服务热火朝天的时代,分布式事务变的更加急迫,那么如果解决分布式事务是一个一直以来的难题,今天我们来介绍一个保证最终一致性的分布式事务的框架servicecomb-saga。
alpha安装
下载
1
git clone https://github.com/apache/servicecomb-saga.git
编译
1
2
3
4
5
6
7
8如果使用mysql作为alpha的db,那么修改配置文件alpha/alpha-server/pom.xml
在</dependencies>之前添加如下依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
mvn clean install -DskipTests -Pspring-boot-2修改alpha配置文件
创建数据库
1
2
3
4
5
6进入数据库命令行
create database `saga` charset utf8 collate utf8_general_ci;
create user 'saga'@'%' identified by 'password';
grant all on saga.* to 'saga'@'%' with grant option;
flush privileges;
执行alpha/alpha-server/...resource下的sql文件启动alpha
1
2
3
4
5
6
7java -D"spring.profiles.active=mysql"
-D"spring.datasource.url=jdbc:mysql://localhost:3306/saga?useSSL=false"
-D"spring.datasource.username=saga"
-D"spring.datasource.password=password"
-D"alpha.server.port=7080"
-D"server.port=7090"
-jar alpha-server-0.3.0-SNAPSHOT-exec.jar >./run.log 2>&1 &修改应用程序配置
在Application上增加@EnableOmega,在application配置文件中增加alpha.cluster.address=localhost:7080
omega分析
这里有几个重要的类,SagaStartAspect,OmegaContext,TransactionAspect,Compensable,TransactionHandlerInterceptor
让我们看看流程图。
知识有限,如有错误之处敬请谅解。
如果您觉得文章有用或对您有帮助,欢迎通过以下方式赞助我。 ♪(^∀^●)ノ
本文由 xxzkid | 我叫王也道长创作,采用
CC BY 3.0 CN协议 进行许可。
可自由转载、引用,但需署名作者且注明文章出处。
本文标题:servicecomb-saga omega分析
本文链接:https://xxzkid.github.io/2018/servicecomb-saga-1/
本文标题:servicecomb-saga omega分析
本文链接:https://xxzkid.github.io/2018/servicecomb-saga-1/