3. 7 Spring Cloud 网关 Zuul 集成 Nacos 注册中心| 学习笔记

简介: 快速学习 3. 7 Spring Cloud 网关 Zuul 集成 Nacos 注册中心。

开发者学堂课程【Spring Cloud 微服务架构设计与开发实战 3. 7 Spring Cloud 网关 Zuul 集成 Nacos 注册中心】学习笔记,与课程紧密联系,让用户快速学习知识。

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


3.7 Spring Cloud 网关 Zuul 集成 Nacos 注册中心

 

内容介绍

一、 网关 Zuul 集成 Nacos 注册中心

二、 实战操作

 

一、网关 Zuul 集成 Nacos 注册中心

本节课主要讲解 Spring Cloud 网关 Zuul 如何集成 Nacos 注册中心Nacos 的功能十分强大,在前面的课程中已经学习过。

本节课主要对整体的 Spring Cloud 微服务架构做升级改造,这里包括微服务从基础开发到配置优化,集成原理以及设计模式,还有使用最新框架改造的过程。Spring Cloud2.0,2.1等版本也可以逐步进化。

//引用必须修改 Zuul 的配置代码

server.port=8201

spring.application.name=taobao-nacos-microservice。

#Nacos

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

调用,检查 zuul 是否上线,通过 zuul 能否调用后台的微服务,路由规则有没有变掉,如果变掉就比较麻烦。

 

二、实战操作

通过 zuul 测试微服务 API 调用

//zuul Nacos 的引用,因为 zuul 不是和 eureak 进行集成,而是和 Nacos 进行集成。

//从中心地址修改配置。

spring.application.name=zuulproxy

server.port=10000

#Nacos

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

在这里还需要使用到 @EnableDiscoveryClient。

保证之前的 Nacos 中心起来,必须有熔断,一般在 zuul 上做代理,所以有可能在 zuul 上做熔断。

如果从0开始改造项目,需要注意版本问题,目前使用的版本是2.3.7Nacos 用的版本是2.2.3,会有版本差别的问题,过高的版本可能会不支持。Nacos 和 zuul 的兼容性也需要注意。

查看之前使用的 zuul 版本是2.3.7

//修改配置可以通过直接复制代码进行改造,项目命名为javaSpringCloud000000zuulproxyNacos,将 Nacos 的代码复制过来,然后修改配置文件,要注意版本兼容性。只修改配置文件即可,其他内容都不用进行修改。

//修改配置文件,删除掉 eureak 相关的代码。

spring.application.name=zuulproxy

server.port=10000

#nacos

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

运行报错,原因是 eureak 没有删除掉。理论上这里不需要 eureak,只需要 Nacos

重新启动,运行报错,报错信息的意思是:考虑在 config 中定义一个接口,这个配置没有。出错原因是默认的包名和自己定义的包名重名了,对包名进行修改,改为 cn.alibaba

重新启动,运行成功。查看注册中心,zuulproxy 上线了,通过 zuul 可以调后台的淘宝服务。调用方法:原来输的是10000,这里需要修改 zuul 的调动策略。如果使用 localost:10000/microservice/hello 调用就会出错。

正确的调用是把微服务地址放在中间,加上参数  hi,如下所示:localost:10000/Taobao-nacos-microservice/hi 通过网关调用,加上服务偏移,服务实际的方法名,即可调用成功。

调用 hello 的方法:

localost:10000/Taobao-nacos-microservice/hello/java 

或者:localost:10000/Taobao-nacos-microservice/hello/1

或者:localost:10000/Taobao-nacos-microservice/hello/frank

或者:localost:10000/Taobao-nacos-microservice/hello/Alibaba

调用结果:只上了两个服务实例也实现了负载均衡。 

以上即是实现了注册中心和网关代理的集成,并且对其做了升级改造。

相关文章
|
2天前
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
21 9
|
22天前
|
前端开发 Java 数据库
SpringBoot学习
【10月更文挑战第7天】Spring学习
33 9
|
23天前
|
XML Java 数据格式
Spring学习
【10月更文挑战第6天】Spring学习
19 1
|
28天前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
52 2
|
28天前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
48 1
|
28天前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
19 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
28天前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
21 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
28天前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
47 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
28天前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
20 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
28天前
|
Java 测试技术 Spring
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
这篇文章介绍了Spring Boot中配置文件的语法、如何读取配置文件以及如何通过静态工具类读取配置文件。
41 0
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
下一篇
无影云桌面