哈喽各位同学们大家好呀,今天是开发者学院中课程“Spring Cloud微服务架构设计与开发实战”的章节三的“Spring Cloud Gateway实战接入Nacos服务”干货总结~这是Spring Cloud 课程的最后一课时,一起学习新课程吧!
课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇
课程名称:Spring Cloud Gateway实战接入Nacos服务
课程地址:https://developer.aliyun.com/learning/course/60/detail/1093
图谱名称:Alibaba Java 技术图谱
图谱地址:https://developer.aliyun.com/graph/java
Spring Cloud Gateway实战接入Nacos服务
各位同学大家好,咱们继续讲解Spring Cloud微服务架构实战系列课程,继续实战Gateway项,Gateway是官方出品的网管工具,接入Nacos注册中心进行集成。目前Nacos国内很多大型公司在用,作为一个分布式数据中心,能够做注册和服务发现治理,还可以做统一配置服务。
Gateway为什么要和Nacos做集成,因为这两2个都非常优秀,是黄金搭档,Nacos本身不仅支持Spring Cloud,还支持double,GO语言等一些分布式框架来做统一的注册和治理中心。
- Spring Cloud Gateway网关
Spring Cloud Gateway新特性
1. 基于Spring 5,Project Reactor和Spring Boot 2.0构建
2. 能够匹配任何请求路由。
3. 特定路由专用Predicate谓词和过滤器Filter特。
4. 集成Hystrix断路器。
5. 集成Spring Cloud DiscoveryClient
6. 易于编写谓词和过滤器
7. 请求速率限制
8. 路径重写
9. 非阻塞API,响应式API,高并发
Spring Cloud Gateway 可以和集成微服务的项目直接改造进行集成,但是和Nacos进行搭配需要注意下,因为Nacos有集成模式和单点模式。关于如何进行操作可以回看之前讲解过的Nacos实战。如果起不来可能是环境、配置文件等出现问题。
- Spring Cloud Gateway实战集成 Nacos
改造Spring Cloud Gateway具体怎么操作?简单一点的话,就是之间的Gateway项目进行重构,升级,去支持Nacos服务。之前的微服也需要进行重构,去支持Nacos中心服务。只有2个对接成功之后,才可以做后续的工作。
Nacos本身开发客户端的依赖,客户端项目去集成它,需要具备和Nacos通信的功能。现在Spring Cloud微服架构,不仅可以用麦飞的,Spring Cloud官方的,还有阿里巴巴的,所以架构设计有个多个选择, 而且各个框架在不断的迭代。有更多的优秀的解决方案去落地你的项目。
Spring Cloud Gateway在集成Nacos时,可能出现一些错误,目前还是存在Bug的,后续官方会进行修复,需要注意下相关的配置。
大家把微服务项目改造完成以后挂接到Gateway上进行一下测试,流程给跑通,进行测试下。
项目进行改造需要把依赖加进去,是Nacos中心的一个对接。
启动Nacos服务在win10 、Linux、MAC脚本会不太一样。目前截图界面是单点模式,集群模式可以在生成模式进行。
本地可以弄一个Nacos配置文件,这样子配置数据不会丢失,即使重启了也不会丢失。
图(1)
上图(1)显示重启是出现一个Bug,自动服务注册的时候出现2个,由于这个项目是从早期的Spring Cloud移植过来的,只要删除下图(2)依赖,在重启就可以正常运行。
图(2)
如配置正常是可以在Nacos查看Spring Cloud Gateway,如见图3
图3
后续的微服务改造也是同理的,配置文件进行修改,增加Nacos依赖。
希望大家在实战过程中去思考,之前讲的那些设计模式和原理。如:Gateway如何监控后台的微服务,谁来执行,多长时间拉一次服务列表,在调用的过程中有没有High Strikes这种现成词的概念,有没有链接池的概念,这里面都会影响到后面的性能问题。
底层的机制中,Europe默认是30秒,实际淘汰一个服务实际是90秒,Europe本身也有服务过期的机制,过期了会从服务列表中删除掉。
微服务架构师本身不像传统的一些简单的架构只需要做三层或者五层的改动,而是更多的不同框架,并且考虑问题需要综合全面的。微服务架构里面有许多许多的框架和方案,并且每个框架方案的话都需要你自己实际去实战配代码。微服务架构含金量十足,作为分布式架构里面,是一个巅峰,里面包含了几十种设计模式、几十种框架,而且还在不断的迭代进行更新。这里面就需要我们在不断的去学习,逼着大家不断的去进步,是个考验,是个挑战,但是同时也是一个很好的机遇。