1、基本概念 1.1、服务雪崩 微服务架构中,一个系统被拆分成多个子服务,这些服务之间存在相互调用关系,某个服务不可用之后,导致调用它的服务不可用,最终导致整个服务链崩溃,就出现服务雪崩。 预防服务雪崩有以下几个方案: 服务熔断:某个服务崩溃后,暂停对该服务的调用; 服务降级:对不是很关键的服务来说,当服务负荷过高或响应过慢,则关闭对该服务的访问,返回一个定义好的兜底数据,等服务负荷降低在开放对该服务的访问; 服务限流:不是核心的服务可以使用服务降级来处理,但是核心的服务一定要保证能够正常访问,因此我们对服务进行限流处理,限制他的并发和请求量,保证服务能够正常运行。 2、Sentinel简介 sentinel是一个轻量级的流量控制、熔断降级Java 组件,是分布式系统的流量防卫兵; Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 更多信息可以参考sentinel的github地址 3、下载安装 在sentinel版本列表上下载自己需要的版本的jar包,然后java -jar启动成功就可以访问了,默认端口是8080,用户名密码都是sent.... 有更新! sentinel nacos
1、简介 AT 模式(参考链接 TBD)基于 支持本地 ACID 事务 的 关系型数据库 : TCC 模式,不依赖于底层数据资源的事务支持。 2、建立项目 TCC模式的maven依赖引入,项目配置和AT模式相同,可以参考seata+nacos实现AT模式分布式事务的第2节,完成代码到git上下载,TCC模式在tcc分支下,脚本在script目录下(和AT模式的数据库脚本一致,选择一个执行即可) https://gitee.com/WylLoveX/seata.git 3、使用 TM端依然使用@GlobalTransactional注解标识 RM端需要单独标识出来 @LocalTCC将资源注册到TC @TwoPhaseBusinessAction 将资源标时为二阶段提交的try阶段,这里需要在指定二阶段对应的Confirm和Cancel @BusinessActionContextParameter标时这个一个二阶段参数,后续可以在BusinessActionContext中获取 /** * @author Mr.Wen * @version 1.0 * @date 2021-10-2.... 有更新! seata+nacos实现TCC模式分布式事务 程序人生
1、AT模式简介 AT模式官网已经给出了很详细的介绍,可以直接看官网 http://seata.io/zh-cn/docs/dev/mode/at-mode.html 2、建立项目 涉及的代码过多,这里只对几个关键的步骤进行说明,完整代码可以到git上下载,AT模式在master分支上,数据库脚本在script目录下 https://gitee.com/WylLoveX/seata.git 2.1、maven依赖 这里我们建立一个spring boot项目,基于2.2.5.RELEASE版本,引入seata和nacos需要的依赖。 spring-cloud-starter-alibaba-seata内部封装了seata分布式事务的XID的传递,引入直接使用,如果不用这个组件,就只能自己解决XID传递的问题; seata-spring-boot-starter的版本号和seata版本保持一致; <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-b.... 有更新! seata+nacos实现AT模式分布式事务 程序人生
1、seata 1.1、seata简介 seata官网:http://seata.io/zh-cn/docs/overview/what-is-seata.html 1.2、seata下载安装 seata下载地址 http://seata.io/zh-cn/blog/download.html 我下载的版本是1.3.0版本,下载完直接解压即可 1.3、服务端配置 进入conf文件里面有两个关键的配置文件,第一个是file.conf,第二个是registry.conf 1.3.1、file.conf file.conf配置了seata运行时数据的存储位置,可选项有file,db,redis,将mode改为自己要配置的模式,然后更改下面对应的配置即可,我使用了db,就更改db对应的配置 ## transaction log store, only used in seata-server store { ## store mode: file、db、redis mode = "db" ## file store property file { ## store location dir d.... 有更新! seata配合nacos使用 程序人生
nacos安装准备工作参考spring cloud整合nacos 1、pom引入依赖 主要是spring-cloud-starter-gateway <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.com.wenyl.alibaba</groupId> <artifactId>gateway</artifactId> <version>1.0-SNAPSH.... 有更新! spring cloud gateway配置 程序人生
1、spring boot的配置文件 一般情况下在application.yml或application.properties中配置项目的配置信息。 除了application的配置文件,还有一个bootstrap的配置文件,bootstrap由父ApplicationContext加载,在application之前被加载,且属性不能被覆盖,主要用于从额外的资源加载配置信息。 使用配置中心,需要在bootstrap文件中配置spring.application.name和配置中心的相关配置,以便于从配置中心获取配置信息。 2、pom引入 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.o.... nacos配置中心 nacos