这次用到的spring组件nacos fegin gateway 完全适合生产开发!!!
1.所用版本
1.准备 springcloud alibaba:2021.0.4
2.springboot :2.7.2:release
3.springcloud:sr8
随便添加一个springboot版本
2.删除自己原有的spring版本 全部交给管理依赖统一管理
2.添加2.添加依赖 springcloud-alibaba、spingboot、springcloud管理依赖 (后续不再需要添加版本配置)
2.添加子项目来被父工程所管理(我这里创建了两个子项目了 order-service和user-service)
分别给他们添加web的运行依赖
添加启动类 这样子项目就搭建完成了
成品这样 父类的启动类我们用不着就可以删掉
2.配置nacos 让各个服务能够被注册发现
1.因为前面我们添加了管理依赖 我们这里就只用给子项目添加nacos依赖 不用再选择版本了
2.添加依赖之后 application.yaml用不着了 可以删除了 然后创建bootstrap.yml配置文件如下配置
启动服务后如果出现Param ‘serviceName‘ is illegal, serviceName is blank springboot在高版本下没有读到bootstrap 子服务需要添加依赖
启动项目 登录nacos发现服务已经能被nacos发现了
要想配置文件能够在nacos读取配置需要给自服务添加nacos客户端依赖
创建命名空间 dev
没添加命名空间就是默认读取public 添加命令空间读取的是对应的环境
public环境 写个配置 来尝试是否能够读取到配置
dev配置
简单定义一个接口
1.发现能够读取 证明nacos的配置已经被读取到了
dev写个配置 加上时分秒然后发现(证明我的命名空间生效了环境也能随意切换了)
这里nacos就全部配置完成了
2.配置fegin 让各个服务能够调用
1.子项目添加依赖feign依赖和负载平衡依赖
2.启动类添加fegin开关
这里user-service准备去调用order-service接口
写个调用接口
成功了证明基本的fegin已经能够使用了
fegin性能优化实现连接数自定义
1.添加依赖(高可用)
2.添加依赖
有了这个就证明配置成功
为了以后规范 我们现在把fegin调用的接口单独抽取到一个包里 这里我们创建一个新maven模块
全部拷过去
引入依赖
添加fegin所在包名
这里fegin就配置成功了
3.配置springgateway来管理资源路径
网关服务引入依赖(nacos注册依赖 )
添加配置文件
spring提供的断言规则这里我们使用的是路径规则
1.设置全局过滤器 只有携带了token并且为admin才能访问否则被拦截并返回状态码401
2.这里报了401证明拦截器生效了
这里携带token就能访问了
2.配置跨域问题(这里根据情况照搬就行了)