3.10 Spring Cloud Gateway 实战接入 Nacos 服务 | 学习笔记

简介: 快速学习 3.10 Spring Cloud Gateway 实战接入 Nacos 服务 。

开发者学堂课程【Spring Cloud 微服务架构设计与开发实战 3.10 Spring Cloud Gateway 实战接入 Nacos 服务】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/60/detail/1093


3.10 Spring Cloud Gateway 实战接入 Nacos 服务

 

内容介绍

一、Gateway 与 Nacos 介绍

二、Gateway 集成 Nacos

三、Spring Cloud Gateway 新特性

四、改造 Spring Cloud Gateway 网关

五、改造 Spring Cloud Gateway 网关配置

六、练习

 

一、Gateway 与 Nacos 介绍

Gateway 是官方网关工具。现在是希望 Gateway 与阿里巴巴 Nacos 注册中心进行集成,但是这两者是两个不同的公司贡献的项目。Nacos 在国内有很多公司使用,而且 Nacos 作为一个分布式的注册中心,它不仅能够做注册和服务发现治理,而且还可以做统一配置服务。

Nacos 本身并不是只支持 Spring Cloud,还可以支持 Go 语言等。

 

二、Gateway 集成 Nacos

Spring Cloud Gateway 可以直接和之前的微服务的项目直接改造进行集成。但现在比较特殊,需要去和 Nacos 进行搭配。

Nacos(之前讲过,做过实践演练,不会的话可以去找 Nacos 实践演练的课程)。现在需要下载,然后启动,启动之后,有集群模式和单列模式,但是要稍微注意一下这个参数,有可能会在机器上不能运行(有可能是环境问题或者jk版里面的问题,有可能是配置文件问题)。但是 Gateway 本身和 Nacos 集成,Nacos 生产环境下可以使用集训模式。

 

三、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 网关

简单来说,就是要把之前的 Gateway 项目重构、升级,然后让它去支持 Nacos 服务。之前的微服务需要改造一下,要支持 Nacos 中心服务。这两个对接成功之后,才可以做后续的一些工作。

核心是 Nacos 本身开发了一个客户的依赖,要集成客户端项目,然后具备与 Nacos进行通信的功能。

 

五、改造 Spring Cloud Gateway 网关配置

集成的时候,可能会有错误会有bug,可能在后续的时候官方的版本中修复好

#gateway

spring.cloud.gateway.enabled=true

spring.cloud.gateway.discovery.locator.enabled=true

spring.cloud.gateway.discovery.locator.lower-case-servise-id=true

#Nacos

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

 

六、练习

复制 Gateway 项目, 把 Gateway 项目改为 Nacos 式

#Nacos

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

需要加入依赖,支持 Nacos 中心的位移

image.png

完成改进,改为之后其他地方不需要动,启动 Nacos 的网关

image.png

Nacos 已经可以启动了

点开服务列表,网关已经建立了,这里有个 getway,还有 taobao-Nacos ,现在需要使用 getway 来调动微服务,证明整个基于 Nacos 系统改造成功。

直接打开微服务,因为此时的微服务是后端直接是在8201上,所以可以直接调用,且测试正常。接下来做接网关的改造测试,注意地址是小写:localhost:100000、taobao-nacos-microservice/hi, 此时再测试,仍旧成功

image.png

经过新的 springcloud 的 gateway 是和 nacos 获取了最新的服务状态,看看能不能设置一个多实例呢?接下来来模拟一个集群,为了保证他的多可用,此时刷新会发现,显示会在两个中轮换显示,此时点开服务中心,可以看到两个服务。

image.png

后期如果有需要的话,可以结合 docer 上线更多的微服务,需要多少可以上线多少。这里就是体现了微服务的弹性。

相关文章
|
10天前
|
前端开发 Java Nacos
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
本文介绍了如何使用Spring Cloud Alibaba 2023.0.0.0技术栈构建微服务网关,以应对微服务架构中流量治理与安全管控的复杂性。通过一个包含鉴权服务、文件服务和主服务的项目,详细讲解了网关的整合与功能开发。首先,通过统一路由配置,将所有请求集中到网关进行管理;其次,实现了限流防刷功能,防止恶意刷接口;最后,添加了登录鉴权机制,确保用户身份验证。整个过程结合Nacos注册中心,确保服务注册与配置管理的高效性。通过这些实践,帮助开发者更好地理解和应用微服务网关。
42 0
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
|
5月前
|
存储 数据可视化 Java
基于MicrometerTracing门面和Zipkin实现集成springcloud2023的服务追踪
Sleuth将会停止维护,Sleuth最新版本也只支持springboot2。作为替代可以使用MicrometerTracing在微服务中作为服务追踪的工具。
232 1
|
4月前
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
101 9
|
4月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
100 3
|
5月前
|
前端开发 Java 数据库
SpringBoot学习
【10月更文挑战第7天】Spring学习
55 9
|
4月前
|
Java Kotlin 索引
学习Spring框架特性及jiar包下载
Spring 5作为最新版本,更新了JDK基线至8,修订了核心框架,增强了反射和接口功能,支持响应式编程及Kotlin语言,引入了函数式Web框架,并提升了测试功能。Spring框架可在其官网下载,包括文档、jar包和XML Schema文档,适用于Java SE和Java EE项目。
55 0
|
5月前
|
XML Java 数据格式
Spring学习
【10月更文挑战第6天】Spring学习
39 1
|
5月前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
172 2
|
5月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
530 1
|
5月前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
64 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现