# springcloud **Repository Path**: YJHW/springcloud ## Basic Information - **Project Name**: springcloud - **Description**: springcloud学习 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-22 - **Last Updated**: 2026-09-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 学习路径 https://www.bilibili.com/video/BV19dYe6BEx1/?spm_id_from=333.788.videopod.episodes&vd_source=2c824555257200498b33127a4999f390&p=51 1. config-nacos 公共配置文件服务 1. 需要通过bootstrap.yml配置注册中心地址等信息 2. order 原生分布式调用方 1. 原生分布式调用方式,通过在启动类中配置RestTemplate的bean进行调用 stock 原生分布式提供方 3. order-loadbalancer 使用loadbalancer进行负载均衡 4. order-nacos 通过nacos注册中心方式进行分布式调用 stock-nacos 5. order-openfeign 使用openfeign进行服务间接口调用 1. 涉及调用超时时间等配置 2. 涉及服务接口调用拦截器 3. 涉及服务调用的日志打印 6. order-ribbon 使用ribbon进行负载均衡 1. 涉及自定义负载均衡 2. 涉及使用nacos进行权重分配策略 stock-service: ribbon: # 指定使用 Nacos 提供的权重负载均衡规则 NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule 7. order-sentinel 控制台方式流控,降级策略 1. 链路流控 需要在yml中配置spring.cloud.sentinel.web-context-unify: false 2. 参数热点流控 需要先添加特点配置,然后再编辑规则,在高级选项中添加指定参数id的流控规则 3. 系统规则 cpu使用率:当前cpu使用率百分比(小数) 入口QPS:接口平均请求数量 4. 流控规则持久化到nacos中的配置文件 需要配置yml 8. product-nacos 产品服务提供方 9. sentinel_demo 代码方式流控,降级 10. order-openfeign-sentinel openfeign整合sentinel降级 1. 需求yml中添加配置 feign.sentinel.enabled:true 2. 给feign接口添加实现类并且注入spring容器(添加@Component) 3. @FeignClient添加参数fallback指向feign接口实现类 11. seata 1. 高可用集群部署步骤 1. 修改seata\conf\file.conf mode改为db 2. 修改seata\conf\registry.conf registry下type改为nacos 因为注册中心需要和事务协调者(seata)通信 config下type改为nacos 因为配置信息要找个地方存储 3. 修改seata\script\config.txt store.mode=db/数据库连接信息 4. 通过运行seata\script\config-center\nacos\nacos-config.sh将配置注册到nacos中,默认一条配置会生成一个dataId, 可以在nacos中新建一个命名空间,然后修改nacos-config.sh中配置,让其默认注册到指定命名空间 2. alibaba-order-seata, alibaba-stock-seata使用seata处理分布式事务 1. 配置 spring.cloud.alibaba.seata.tx-service-group: default_tx_group(这个名字需要和seata\script\config.txt中service.vgroupMapping.后面的名称一致) # 配置事务分组 异地机房停电容错机制 # default_tx_group可以自定义。 default必须要等于seata\conf\registry.conf下cluster service.vgroupMapping.default_tx_group=default 2. 配置seata注册中心 3. 配置seata配置中心 12. gateway 网关 1. 非nacos方式 application.yml.bak 2. nacos简写方式,以服务名作为过滤器去除第一层 3. nacos详细配置方式 1. 内置断言工厂,保护时间限制,请求类型get,post限制,请求参数限制 2. 自定义断言工厂 1. 必须是 spring组件 2. 必须以RoutePredicateFactory结尾 3. 必须继承AbstractRoutePredicateFactory 4. 必须有一个静态内部类Config,声明属性来接收配置文件中的对应断言信息 5. 需要配合shortcutFieldOrder进行属性绑定 6. 通过apply进行逻辑判断,匹配成功返回true 案例CheckAuthRoutePredicateFactory,yml中配置项CheckAuth 3. 内置过滤器 4. 自定义过滤器工厂(局部) 1. 必须以GatewayFilterFactory结尾 案例CheckAuthGatewayFilterFactory,yml中配置CheckAuth 5. 内置全局过滤器,针对所有路由,一旦定义,就会投入使用 6. 自定义全局过滤器 LogFilter 4. 打印日志 在启动项目中添加 -Dreactor.netty.http.server.accessLogEnabled=true 5. 跨域处理 1. 方式1 yml中 globalcors属性 2. 方式2 配置类 案例CorsConfig 6. 整合sentinel控制台方式进行流控 1. 自定义流控,降级后返回信息 案例 GatewayFallback