springcloud alibaba
Nacos(服务注册与发现、服务的配置)
@EnableDiscoveryClient
spring.application.name=nacos-provider
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
Nacos本身融合了ribbon的jar包,配合restTemplate和@LoadBalanced实现后端负载均衡调用服务端
restTemplate.getForObject(SERVICE_URL+"/nacos/"+str,String.class);
Sentinel(服务的降级和熔断)
流量控制(flow control),其原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。
每秒查询率(QPS,Queries-per-second)是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量
Seata(分布式事务)
AT模式(Auto Transcational)
利用undolog(回滚日志):记录修改前的记录
redolog(重做日志):主要用来数据库崩溃后的数据恢复的
binlog(二进制日志):主要用来主从数据库数据的同步的
阿里巴巴开源的分布式事务解决方案
两阶段提交协议的演变
一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。
二阶段:①提交异步化,非常快速地完成。②回滚通过一阶段的回滚日志进行反向补偿。
取消数据源的自动创建
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)//取消数据源的自动创建
使用Seata对数据源进行代理
@GlobalTransactional(name = "fsp-create-order",rollbackFor = Exception.class)
@FeignClient(value = "seata-account-service")
public interface AccountService
{
@PostMapping(value = "/account/decrease")
CommonResult decrease(@RequestParam("userId") Long userId, @RequestParam("money") BigDecimal money);
}

浙公网安备 33010602011771号