springcloud alibaba微服务体系的组成:
服务发现 - Nacos
服务调用 - OpenFeign/Dubbo/gRPC
路由网关 - Gateway
配置中心 - Nacos
消息驱动 - RocketMQ
流量控制 - Sentinel
分布式事务 - SEATA
分布式任务调度 - SchedulerX
分布式存储 - OSS
NACOS作用:
服务发现和服务健康检测
动态配置服务
动态dns服务
服务及元数据管理
设置mybatis驼峰命名自动转换规则:
Feign和OpenFeign:
Feign是一个开源声明式的WebService客户端,用于简化服务通信
Feign采用接口+注解方式开发,屏蔽了网络通信的细节
OpenFeign是springcloud对Feign的加强,用于简化Feign的开发
其本身是一个http协议的通讯工具包调用过程:
Ribben:
Ribben是SpringCloud自带组件,用于实现微服务通信的客户端负载均衡
Sentinel:
下载Sentinel jar包并运行,访问localhost:8080 Sentinel仪表盘对服务进行操作
流控规则:
流控模式:
流控效果:
熔断机制:
熔断策略:
Sentinel通信原理:
通信的特点:
OpenFeign整合Sentinel:
自定义熔断或限流触发内容:
指定fallbackFactory熔断或限流触发类
限流熔断类型:
Nacos和Sentinel持久化:
当服务重启后,可视化界面设置的配置就失效了,原因是默认在当前的主机内存中对规则进行的管理,可以在nacos控制台的配置管理>新建配置创建规则:
上图配置的json内容对呀sentinel仪表盘中新建流控规则的各个属性和属性值,配置完成后需要添加maven依赖,在yml配置文件中进行绑定,application.yml文件如下:
com.alibaba.csp
sentinel-datasource-nacos
Gateway微服务网关:
创建gateway项目,yml配置如下:
启动项目,请求http://localhost/服务名/服务路由地址 访问具体的服务
路由规则设置
跨域设置
基于JJWT实现微服务JWT授权:
创建认证中心服务,引入JJWT依赖
yml配置文件:
模拟登陆返回token信息:
自定义注解和拦截器组合验证token:
定义自定义注解:
定义拦截器配置:
拦截器进行校验:
使用注解:
nacos配置中心:
引入依赖
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
${spring-nacos.version}
在nacos注册中心配置列表新建一个配置,配置内容为application.yml文件内容:
删掉项目中的配置文件,创建一个bootstrap.yml引导文件:
nacos应用的配置共享:
在bootstrap.yml文件中添加如下配置
在nacos注册中心配置列表新建一个配置,配置内容为common-dev.yml文件,配置需要共享的配置内容。
**配置优先级为:服务名-{profiles}.yml > 服务名.yml > 全局共享.yml**
自动刷新配置: