代码拉取完成,页面将自动刷新
同步操作将从 huan1993/Spring Cloud Alibaba 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Spring Cloud Alibaba 学习,学习各个组件的使用
版本选择说明
spring-cloud-alibaba-parent
│ |- 父项目
├─nacos-discovery [博客](https://blog.csdn.net/fu_huo_1993/article/details/109257707)
│ |- 注册中心
│ │- user-consumer-9091
| | >> 1、只作为服务消费者,不注册 nacos 上
│ │ ** spring.cloud.nacos.discovery.register-enabled = false
│ │ >> 2、配置 nacos 服务地址
│ │ ** spring.cloud.nacos.discovery.server-addr=地址,不需要[http|https]
│ │ >> 3、自定义注册到 nacos 上的服务名,默认是获取的spring.application.name的值
│ │ ** spring.cloud.nacos.discovery.service=服务名
│ │ >> 4、集成ribbon
│ │ ** ribbon.nacos.enabled=true true=集成,false=不集成
│ │ >> 5、从nacos上移除改服务
│ │ @Autowired
│ │ private NacosServiceManager nacosServiceManager;
│ │ @Autowired
│ │ private NacosDiscoveryProperties nacosDiscoveryProperties;
│ │
│ │ # 修改nacos上这个服务的健康状态为不健康,此时该服务还是可以对外提供服务的。
│ │ nacosServiceManager.nacosServiceShutDown()
│ │
│ │- user-provider-9092
│ │- user-provider-9093
│ │ >> 1、服务提供者,注册到 nacos 上。
│ │ ** spring.cloud.nacos.discovery.register-enabled = true
│ │ >> 2、设置元数据。
│ │ ** spring.cloud.nacos.discovery.metadata (key value) 格式
│ │ >> 3、命名空间的配置。
│ │ ** spring.cloud.nacos.discovery.namespace 用于区分不同的环境,比如 dev、local等,需要写 命名空间ID 的值
│ │ >> 4、配置组,不同的服务可以划分到一个组,默认是 DEFAULT_GROUP。
│ │ ** spring.cloud.nacos.discovery.group
│ │ >> 5、配置集群,默认值是 DEFAULT
│ │ ** spring.cloud.nacos.discovery.cluster-name
├─nacos-ribbon
│ |- nacos 整合ribbon,默认就整合了ribbon
│ │- user-consumer-9091
| | >> 1、自定义负载均衡策略,使之整合nacos的权重
│ │ ** NacosWeightRule
│ │ >> 2、需要注意 Spring 的父子上下文,否则很容易导致为某个服务配置的规则导致应用到全部的微服务上。
│ │- user-provider-9092
│ │- user-provider-9093
│ │ >> 1、配置微服务权重
│ │ ** spring.cloud.nacos.discovery.weight 1-100,值越大,权重越大
├─sentinel [博客](https://blog.csdn.net/fu_huo_1993/article/details/109271114)
│ |- nacos 整合 sentinel
│ │- user-consumer-9099
| | >> 1、整合 sentinel 配置 sentinel dashboard 的 url 和 通讯端口
| | >> 2、整合 Feign
| | >> 3、整合 RestTemplate
| | >> 4、生产环境使用 sentinel https://github.com/alibaba/Sentinel/wiki/%E5%9C%A8%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8-Sentinel
│ │- product-provider-9098
| | >> 1、自定义 BlockExceptionHandler ,实现降级或限流时返回一个默认值
│ │- user-provider-9097
│ │- user-provider-9098
├─gateway [博客](https://blog.csdn.net/fu_huo_1993/article/details/109405439)
│ |- Spring Cloud Gateway route predicate factory的一些用法
│ │- gateway-9102
│ │ 1、gateway 的一些基本用法│
│ │ 2、spring.cloud.gateway.enabled 用来配置是否启动网关
│ │ 3、spring.cloud.gateway.routes[index].uri=[http|lb] lb表示负载均衡的地址 eg: lb:service-name
│ │ 4、route predicate factory 的使用
│ │ 5、自己编写一个 Route Predicate Factory(git commitid b70f2598)
│ │- gateway-error-9103
│ │ 1、网关层面的异常处理
│ │- product-provider-9101
│ │- user-consumer-9100
├─gateway-filter [博客](https://blog.csdn.net/fu_huo_1993/article/details/109427564)
│ |- Spring Cloud Gateway filter 的一些用法
│ │- gateway-9103
│ │ 1、gateway filter 的一些基本用法
│ │ 2、实现修改 RequestBody
│ │ 3、StripPrefix 可以去掉路由匹配的前缀
│ │ 4、PrefixPath 可以为下游服务增加一个前缀
│ │ 5、uri 使用 lb://xxx 时,默认使用的阻塞的 ribbon LoadBalancerClient,推荐使用 ReactiveLoadBalancerClientFilter,开启方法设置 spring.cloud.loadbalancer.ribbon.enabled = false
│ │ 6、配置 默认拦截器,对所有的路由都会生效,spring.cloud.gateway.default-filters:......
│ │ 7、配置 全局过滤器,所有的路由都生效,全局过滤器有顺序,需要实现 GlobalFilter 和 Ordered 接口
│ │ 8、实现一个 全局过滤器 CustomGlobalFilter
│ │ 9、实现一个 GatewayFilter TokenGatewayFilterFactory
│ │ 10、获取当前路由,获取过滤器执行顺序 参考 GetCurrentRouteAndSortGatewayFilterFactory
│ │ 11、指定网关全局和局部的超时时间
│ │ 12、处理网关异常。GatewayExceptionHandler
│ │ 13、输出调试日志。
│ │- product-provider-9104
│ │- user-consumer-9105
├─gateway-oauth2 [博客](https://blog.csdn.net/fu_huo_1993/article/details/119914696?spm=1001.2014.3001.5501)
│ |- Spring Cloud Gateway 整合 Oauth2 实现认证操作
│ │- authorization-server-prod
│ │ 1、认证服务器,具体搭建参考 https://blog.csdn.net/fu_huo_1993/article/details/118798160?spm=1001.2014.3001.5501
│ │- user-provider
│ │ 1、用户服务,对外提供一个 获取所有用户的接口
│ │ 1、获取网关服务传递下来的token信息,也可以传递具体的认证数据
│ │- gateway
│ │ 1、实现网关的认证
│ │ 2、向下游服务的请求头中传递解码后的token数据
│ │ 3、整合 oauth2 资源服务器,实现验证权限操作
├─gateway-redis-limiter [博客](https://blog.csdn.net/fu_huo_1993/article/details/120155756?spm=1001.2014.3001.5501)
│ │- gateway
│ │ 1、实现网关限流
│ │ 2、实现限流后,返回自定义的响应码给客户端
│ │ 3、实现自定义的限流key
│ │ 4、实现自定义的限流算法
│ │ 5、RequestRateLimiter 过滤器只能使用 name,args的方式来配置
├─nacos-config [博客](https://blog.csdn.net/fu_huo_1993/article/details/109923909)
│ |- Spring Cloud Alibaba Nacos Config 的一些用法
│ │- product-provider-9200
│ │ 1、如何确定加载一个配置文件
│ │ 2、配置的刷新
│ │ 3、实现加载多个配置文件
│ │ 4、加载的顺序
│ │ 5、nacos config 配置相关的内容需要放置在 bootstrap.yml 配置文件中
│ │ 6、@RefreshScope在定时任务中的坑
│ │ 7、@Value配置的值在线程中的坑
│ │ 8、最好不要出现优先级上的配置
├─gateway-dynamic-refresh-route [博客](https://blog.csdn.net/fu_huo_1993/article/details/117997210)
│ │- gateway-9201
│ │ 1、完成网关配置的自动刷新,不需要额外的配置,只需要 Spring Cloud Alibaba Nacos Config 和 Spring Cloud Gateway 整合,网关配置放到 nacos 上即可实现。
更多内容请关注微信公众号
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。