# SpringCloud **Repository Path**: wanglei_leo/SpringCloud ## Basic Information - **Project Name**: SpringCloud - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-11 - **Last Updated**: 2025-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 测试登陆用户: jack 123 后台管理界面: Nacos: http://192.168.222.11:8848/nacos 默认账号密码: nacos/nacos Seata: http://192.168.222.11:7099 admin/admin Sentinel: http://localhost:8090 sentinel/sentinel ---------- Step1: 拆分成不懂的模块 Step2: 模块中,注入,如果需要,可以配置 RestTemplate更多内容, 然后可以使用http请求跨server调用 测试:http://localhost:8082/doc.html Step3: 模块之间调用需求,引入注册中心 Nacos,Nacos的安装.这里使用docker docker load -i nacos.tar 可以直接加载本地的镜像 ``` docker run -d \ --name nacos \ --env-file /docker/nacos/custom.env \ -p 8848:8848 \ -p 9848:9848 \ -p 9849:9849 \ --restart=always \ nacos/nacos-server:v2.1.0-slim ``` Step4: 注册中心 - Nacos 配置 服务注册:引入nacos discovery依赖,配置nacos 地址 服务发现:引入nacos discovery依赖,配置nacos 地址,DiscoveryClient调用 Nacos官网:https://nacos.io/docs/latest/quickstart/quick-start/?spm=5238cd80.297dad21.0.0.271de37eYVV4LB Step5: 引入OpenFeign - 一个申明式的http调用客户端(服务调用) 1.导入openfaign和负载均衡器依赖 2.导入@EnableFeignClients,开启FeignClient功能 3.编写FeignClient 4.使用@FeignClient注解,指定服务名,指定接口,实现远程调用 5,优化OpenFeign 链接池,默认使用HttpURLConnection(不支持连接诶池),改为使用okHttp。引入okHttp依赖,修改配置类 Step6:项目结构优化 方式一:当前ms下创建api模块,和domain 模块,作为提供给别的服务的接口,适合大部分场景 方式二:当前项目下单独创建一个模块,作为所有ms的公共接口,一般适合小的聚合ms项目。 这里选择方式二。 注意:package换了之后,可能扫描不到新package下的bean, 需要配置扫描。 Step7: OpenFeign日志,默认debug级别会输入日志。但是openFeign有自己的子级别。 NONE - 不记录任何日志 BASIC - 仅记录请求方法、URL、响应状态码及执行时间 HEADERS - 记录请求和响应的请求头 FULL - 记录请求和响应的请求头、请求体、响应头和响应体 1.创建config文件申明日志级别 2.支持全局或者局部定义。可以设置在局部,也可以设置在全局EnableFeignClients。 Step7: 拆分出模块 user trade pay 略 Step8: 网关, 引入 Spring Cloud Gateway 常用的还有 Netflix Zuul 之前还使用过 APIGEE predicates and fillter的配置参数有很多。详情见Spring Cloud Gateway官方文档 Step9: 网关,自定义过滤器 Netty路由过滤器 - NettyRouteFilter, 负责讲请求转发到后端微服务 转发之前 添加JTW 验证 + 传递用户信息给后端微服务 GatewayFilter - 路由过滤器,任意指定的路由,默认不生效。 GlobalFilter - 全局过滤器,申明后自动生效。 Step 10, 网关+common 模块 拦截并传递用户信息 Step 11. OpenFeign 拦截器,传递用户信息 Step 12. 配置管理(Nacos 配置中心) - 配置共享,配置热更新(注意文件命名规则),动态路由(需要用到监听配置) 以前还用过CyberArk - 一个关于密码的配置管理 我们这里使用Nacos,做 配置 管理 ![img.png](img/img.png) ![img.png](img/img02.png) Step 13 熔断器 Sentinel(国内) Hystrix(国外) 请求限流 线程隔离 服务熔断 失败处理 java -Dserver.port=8090 -Dcsp.sentinel.dashboard.server=localhost:8090 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar Fallback 降级(后备)逻辑的实现 断路器 状态 Closed/Open/Half-Open Step 14. Seata 分布式事务 准备 `docker load -i seata-1.5.2.tar` ``` docker network ls docker network create -d bridge hm-net docker inspect mysql8 docker network connect hm-net mysql8 docker network connect hm-net nacos ``` ````shell docker run --name seata \ -p 8099:8099 \ -p 7099:7099 \ -e SEATA_IP=192.168.222.11 \ -v /docker/seata:/seata-server/resources \ --privileged=true \ --network hm-net \ -d \ seataio/seata-server:1.5.2 ```` Step 15. 事务-seata - rollback试验。 XA | AT 模式配置 在Nacos中 事务-seata - rollback试验。XA | AT 模式配置 在Nacos中