
SpringCloudAlibaba
文章平均质量分 79
吴声子夜歌
个人学习记录
展开
-
SpringCloudAlibaba——Seata配置文件
Seata配置文件详解在${SEATA_HOME}\conf目录下有两个配置文件,分别是registry.conf和file.conf。registry.confregistry.conf包含两项配置:registry:表示配置Seata服务注册的地址,支持目前市面上所有主流的注册中心组件。它的配置非常简单,通过type指定注册中心的类型,然后根据指定的类型对应的服务地址信息,比如当type=nacos时,则匹配到Nacos的配置项如下:type="nacos"nacos { serverAd原创 2020-08-17 15:32:54 · 3313 阅读 · 0 评论 -
SpringCloudAlibaba——Seata AT模式的实现原理
Seata AT模式的实现原理AT模式是基于XA事务模型演化而来的,所以它的整体机制也是一个改进版的两段提交协议。第一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。第二阶段:提交异步化,非常快速地完成。回滚通过第一阶段的日志进行反向补偿。以一个创建订单事务中的库存表tbl_repo来表述整个工作过程:AT模式第一阶段的实践原理:在业务流程中执行库存扣减操作的数据库操作时,Seata会基于数据源代理对源执行的SQL进行解析,代理的配置如下:@Beanpubli原创 2020-08-17 14:44:42 · 653 阅读 · 2 评论 -
SpringCloudAlibaba——编码方式配置Sentinel限流与熔断
Sentinel限流、熔断的实现流程定义资源定义限流、熔断规则检验规则是否生效定义资源方式一:使用@SentinelResource注解@GetMapping("testY")@SentinelResource(value = "testY", blockHandler = "testYHandler")public String testY(){ return "testY";}//限流后的处理方法public String testYHandler(BlockExce原创 2020-08-16 22:00:05 · 488 阅读 · 1 评论 -
SpringCloudAlibaba——Nacos Config实现原理解析
Nacos Config实现原理解析Nacos Config针对配置提供了4中操作。针对这4中操作,Nacos提供了SDK及Open API的方式进行访问。== 获取配置:从Nacos Config Server中读取配置==监听配置:订阅感兴趣的配置,当配置发生变化时可以收到一个事件:发布配置:将配置保存到Nacos Config Server中:删除配置:删除配置中心的指定配置:配置的CRUD对于Nacos Config来说,其实就是提供了配置的集中式管理功能,然后对外提供CRUD原创 2020-08-16 11:43:27 · 853 阅读 · 1 评论 -
SpringCloudAlibaba——Nacos实现原理详解
Nacos架构Provider APP:服务提供者Consumer APP:服务消费者Name Server:通过VIP(Virtual IP)或DNS的方式实现Nacos高可用集群的服务路由Nacos Server:Nacos服务提供者,里面包含的Open API是功能访问入口,Conig Service、Naming Service 是Nacos提供的配置服务、命名服务模块。Consitency Protocol是一致性协议,用来实现Nacos集群节点的数据同步,这里使用的是Raft算法(E原创 2020-08-16 10:56:24 · 29526 阅读 · 4 评论 -
SpringCloudAlibaba--Seata原理简介
Seata2019年1月份蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案。Simple Extensible Autonomous Transaction Architecture,简单可扩展自治事务框架。TC/TM/RM三大组件:执行流程:TM开启分布式事务(TM向TC注册全局事务记录)按业务场景,编排数据库、服务等事务中资源(RM向TC汇报资源准备状态)TM结束分布式事务,事...原创 2020-03-23 20:58:42 · 1587 阅读 · 1 评论 -
SpringCloudAlibaba--Seata简单案例(三)
测试数据库的初始情况:seata_order.t_order:seata_storage.t_storage: 1号商品总数100,0个售出,实存100.seata_account.t_account: 1号用总金额1000,使用0,余额1000.正常下单启动nacos、sentinel、seata以及2001、2002、2003微服务 :访问:localho...原创 2020-03-23 17:19:47 · 929 阅读 · 0 评论 -
SpringCloudAlibaba--Seata简单案例(二)
新建库存Storage-Moduleseata-storage-service2002pom.xml<dependencies> <!--nacos--> <dependency> <groupId>com.alibaba.cloud</groupId> ...原创 2020-03-23 16:34:00 · 470 阅读 · 0 评论 -
SpringCloudAlibaba--Seata简单案例(一)
Seata业务数据库准备这里会创建3个服务,一个订单服务,一个库存服务,一个账户服务。当用户下单时,会在订单服务中创建一个订单,然后通过RPC调用库存服务来扣减下单商品的库存,再通过远程调用账户服务来扣减用户账户里面的余额,最后在订单服务中修改订单状态为已完成。该操作跨越3个数据库,有两次远程调用,很明显会有分布式事务问题。创建业务数据库:seata_order:存储订单的数据库;s...原创 2020-03-23 15:43:59 · 6225 阅读 · 2 评论 -
SpringCloudAlibaba--Seata概述、安装
分布式事务的问题分布式前:单机单库没有问题从1:1 -> 1:N -> N:N分布式之后:单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部的数据一致性由本地事务来保证,但是全局的数据一致性问题没法保证。SeataSeata是一款开源的分布式事务解决方案,致力于在微服务架构下提...原创 2020-03-23 13:16:07 · 705 阅读 · 0 评论 -
SpringCloudAlibaba--Sentinel持久化规则
Sentinel持久化规则一旦我们重启应用,sentinel规则将消失,生产环境需要将配置规则进行持久化。将限流配置规则持久化进Nacos保存,只要刷新8401某个rest地址,sentinel控制台的流控规则就能看到,只要Nacos里面的配置不删除,针对8401上sentinel上的流控规则持续有效。修改cloudalibaba-sentinel-service8401模块:添加依赖:...原创 2020-03-23 11:06:19 · 1230 阅读 · 0 评论 -
SpringCloudAlibaba--Sentinel熔断、熔断框架比较
Sentinel服务熔断sentinel整合ribbon+openFeign+fallbackRibbon:提供者9003/9004消费者84Feign:新建cloudalibaba-provider-payment9003/9004依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns...原创 2020-03-23 10:37:01 · 993 阅读 · 0 评论 -
SpringCloudAlibaba--SentinelResource
@SentinelResource创建cloudalibaba-sentinel-service8401模块:依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20...原创 2020-03-22 22:13:06 · 389 阅读 · 0 评论 -
SpringCloudAlibaba--Sentinel系统自适应限流
Sentinel系统自适应限流官网:https://github.com/alibaba/Sentinel/wiki/系统自适应限流Sentinel 系统自适应限流从整体维度对应用入口流量进行控制,结合应用的 Load、CPU 使用率、总体平均 RT、入口 QPS 和并发线程数等几个维度的监控指标,通过自适应的流控策略,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能跑在最大吞吐量的同时...原创 2020-03-22 20:46:53 · 639 阅读 · 0 评论 -
SpringCloudAlibaba--Sentinel热点参数限流
Sentinel热点参数限流何为热点?热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据,并对其访问进行限制。比如:商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制热点参数限流会统计传入参数中的热点参数,并根据配置的限流阈值与模式,对包含热点参数的资源调用进行限流。...原创 2020-03-22 20:26:07 · 695 阅读 · 2 评论 -
SpringCloudAlibaba--Sentinel概述、降级规则
熔断降级除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。由于调用关系的复杂性,如果调用链路中的某个资源不稳定,最终会导致请求发生堆积。Sentinel 熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误。当资源被降级后,在接下来的降级时间窗口之内,对该资源的...原创 2020-03-22 14:27:35 · 874 阅读 · 0 评论 -
SpringCloudAlibaba--Sentinel流控规则
Sentinel流控规则基本介绍:资源名: 唯一名称,默认请求路径针对来源: Sentinel可以针对调用者进行限流,填写微服务名,默认default(不区分来源)阈值类型/单机阈值:QPS(每秒请求数量):当调用该api的QPS达到阈值的时候,进行限流线程数:当调用该api的线程数达到阈值的时候,进行限流是否集群: 不需要集群流控模式:直接:api达到限流条件时,直...原创 2020-03-22 11:05:51 · 1371 阅读 · 3 评论 -
SpringCloudAlibaba--Sentinel概述、安装、初始化演示工程
Sentinel概述官网:https://github.com/alibaba/SentinelSentinel是分布式系统的流量防卫兵。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景: Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量...原创 2020-03-22 00:15:09 · 1222 阅读 · 0 评论 -
SpringCloudAlibaba--Nacos集群和持久化配置
Nacos集群官网:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html集群部署架构图http://ip1:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用。http://VIP:port/openAPI 挂载VIP模式,直连vip即可,下面挂server真实ip,可读性不好。http://...原创 2020-03-21 21:52:22 · 761 阅读 · 0 评论 -
SpringCloudAlibaba--Nacos作为服务配置中心
Nacos作为配置中心–基础配置新建cloudalibaba-config-nacos-client3377依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/200...原创 2020-03-21 13:58:05 · 487 阅读 · 0 评论 -
SpringCloudAlibaba--Nacos作为服务注册中心、各种注册中心对比、Nacos的AP和CP模式切换
基于Nacos的服务提供者创建cloudalibaba-provider-payment9001模拟支付模块:依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20...原创 2020-03-21 00:48:39 · 10766 阅读 · 2 评论 -
SpringCloudAlibaba--Nacos概述、环境搭建
Nacos概述Nacos:Dynamic Naming and Configuration Service一个更易于构建原生应用的动态服务发现、配置管理和服务管理平台。Nacos就是注册中心+配置中心的组合。Nacos = Eureka + Config + Bus功能:替代Eureka做服务注册中心替代Config做服务配置中心下载:https://github.com/al...原创 2020-03-20 23:42:29 · 468 阅读 · 0 评论 -
SpringCloudAlibaba--概述
概述Spring Cloud Netflix将不再开发新的组件我们都知道Spring Cloud 版本迭代算是比较快的,因而出现了很多重大ISSUE都还来不及Fix就又推另一个Release了。进入维护模式的意思就是目前以至以后一段事件Spring Cloud Netflix提供的服务和功能就这么多了,不再开发新的组件和功能了。以后将维护和Merge分支Full Request为主。新组件功...原创 2020-03-20 22:21:19 · 1165 阅读 · 0 评论