近年来在java软件开发行业比较流行的一项技术——springcloud分布式,不知道大家有了解过吗?知道springcloud分布式事务是什么吗?它有什么作用呢?
微服务架构的优点如下:
技术异构性:
在不同的服务里面,可以使用不同的技术来各自开发,只要保证服务间能相互协作就可以了。
弹性:
当微服务中的某一个服务不可用的时候,是不会影响整个系统的,只会影响相关功能不可用。
扩展性:
易于扩展,使用小的多个服务,更加易于扩展新的功能
简化部署:
某个服务的更新部署,是不需要重新部署整个应用的。
可组合:
通过组合多个服务,去提供一些新的功能的。
分布式事务的引入:
对于微服务间的事务性操作来说,因为不同的微服务采用了不同的数据库,所有将无法利用数据库本身的事务机制保证一致性,我们需要引入二阶段提交等技术。
在单体项目中,很容易做到事务控制,而在多个服务之间是很难实现的。
Spring Cloud示例:
添加依赖
<properties> <lcn.last.version>4.1.0</lcn.last.version> </properties> <dependency> <groupId>com.codingapi</groupId> <artifactId>transaction-springcloud</artifactId> <version>${lcn.last.version}</version> </dependency> <dependency> <groupId>com.codingapi</groupId> <artifactId>tx-plugins-db</artifactId> <version>${lcn.last.version}</version> </dependency>
在需要执行的事务上添加注解:
@Override @TxTransaction(isStart = true) @Transactional public int save() { }
其中 @TxTransaction(isStart = true) 为lcn事务控制注解,其中isStart = true是 表示该方法是事务的发起方,例如服务A 需要调用服务B,服务B 需要调用服务C,此时呢服务A为服务发起方,其余为参与方,参与方只需@TxTransaction就可以了。
那么以上就是本篇文章的所有内容来了,还想了解更多java常见问答信息的话,记得关注本站消息哦。
推荐阅读: