???> > 哈喽!大家好 ,我是【一心同学 】,一位上进心十足的【Java领域博主】! ???> > 【一心同学 】的写作风格 :喜欢用【通俗易懂 】的文笔去讲解每一个知识点,而不喜欢用【高大上 】的官方陈述。> > 【一心同学 】博客的领域 是【面向后端技术 】的学习,未来会持续更新更多的【后端技术 】以及【学习心得 】。> > 如果有对【后端技术 】感兴趣的【小可爱 】,欢迎关注 【一心同学 】???> > 感谢各位大可爱小可爱! * * 目录 [一、什么是网关?](#目录一、什么是网关?二、什么是Zuul?三、Zuul 能做什么?四、Zuul和Eureka整合五、搭建Zuul5.1? 建立Maven父工程5.2 建立子工程5.3? 配置服务中心 springcloud-eureka-70015.4? 配置服务生产方springcloud-provider-blog-80015.5? 配置路由网关springcloud-zuul5.6? 测试小结)[二、什么是Zuul?](#目录一、什么是网关?二、什么是Zuul?三、Zuul 能做什么?四、Zuul和Eureka整合五、搭建Zuul5.1? 建立Maven父工程5.2 建立子工程5.3? 配置服务中心 springcloud-eureka-70015.4? 配置服务生产方springcloud-provider-blog-80015.5? 配置路由网关springcloud-zuul5.6? 测试小结)[三、Zuul 能做什么?](#目录一、什么是网关?二、什么是Zuul?三、Zuul 能做什么?四、Zuul和Eureka整合五、搭建Zuul5.1? 建立Maven父工程5.2 建立子工程5.3? 配置服务中心 springcloud-eureka-70015.4? 配置服务生产方springcloud-provider-blog-80015.5? 配置路由网关springcloud-zuul5.6? 测试小结)[四、Zuul和Eureka整合](#目录一、什么是网关?二、什么是Zuul?三、Zuul 能做什么?四、Zuul和Eureka整合五、搭建Zuul5.1? 建立Maven父工程5.2 建立子工程5.3? 配置服务中心 springcloud-eureka-70015.4? 配置服务生产方springcloud-provider-blog-80015.5? 配置路由网关springcloud-zuul5.6? 测试小结)[五、搭建Zuul](#目录一、什么是网关?二、什么是Zuul?三、Zuul 能做什么?四、Zuul和Eureka整合五、搭建Zuul5.1? 建立Maven父工程5.2 建立子工程5.3? 配置服务中心 springcloud-eureka-70015.4? 配置服务生产方springcloud-provider-blog-80015.5? 配置路由网关springcloud-zuul5.6? 测试小结)[5.1? 建立Maven父工程](#目录一、什么是网关?二、什么是Zuul?三、Zuul 能做什么?四、Zuul和Eureka整合五、搭建Zuul5.1? 建立Maven父工程5.2 建立子工程5.3? 配置服务中心 springcloud-eureka-70015.4? 配置服务生产方springcloud-provider-blog-80015.5? 配置路由网关springcloud-zuul5.6? 测试小结)[5.2 建立子工程](#目录一、什么是网关?二、什么是Zuul?三、Zuul 能做什么?四、Zuul和Eureka整合五、搭建Zuul5.1? 建立Maven父工程5.2 建立子工程5.3? 配置服务中心 springcloud-eureka-70015.4? 配置服务生产方springcloud-provider-blog-80015.5? 配置路由网关springcloud-zuul5.6? 测试小结)[5.3? 配置服务中心 springcloud-eureka-7001](#目录一、什么是网关?二、什么是Zuul?三、Zuul 能做什么?四、Zuul和Eureka整合五、搭建Zuul5.1? 建立Maven父工程5.2 建立子工程5.3? 配置服务中心 springcloud-eureka-70015.4? 配置服务生产方springcloud-provider-blog-80015.5? 配置路由网关springcloud-zuul5.6? 测试小结)[5.4? 配置服务生产方springcloud-provider-blog-8001](#目录一、什么是网关?二、什么是Zuul?三、Zuul 能做什么?四、Zuul和Eureka整合五、搭建Zuul5.1? 建立Maven父工程5.2 建立子工程5.3? 配置服务中心 springcloud-eureka-70015.4? 配置服务生产方springcloud-provider-blog-80015.5? 配置路由网关springcloud-zuul5.6? 测试小结)[5.5? 配置路由网关springcloud-zuul](#目录一、什么是网关?二、什么是Zuul?三、Zuul 能做什么?四、Zuul和Eureka整合五、搭建Zuul5.1? 建立Maven父工程5.2 建立子工程5.3? 配置服务中心 springcloud-eureka-70015.4? 配置服务生产方springcloud-provider-blog-80015.5? 配置路由网关springcloud-zuul5.6? 测试小结)[5.6? 测试](#目录一、什么是网关?二、什么是Zuul?三、Zuul 能做什么?四、Zuul和Eureka整合五、搭建Zuul5.1? 建立Maven父工程5.2 建立子工程5.3? 配置服务中心 springcloud-eureka-70015.4? 配置服务生产方springcloud-provider-blog-80015.5? 配置路由网关springcloud-zuul5.6? 测试小结)[小结](#目录一、什么是网关?二、什么是Zuul?三、Zuul 能做什么?四、Zuul和Eureka整合五、搭建Zuul5.1? 建立Maven父工程5.2 建立子工程5.3? 配置服务中心 springcloud-eureka-70015.4? 配置服务生产方springcloud-provider-blog-80015.5? 配置路由网关springcloud-zuul5.6? 测试小结) * 一、什么是网关?--------> 网关是一个网络整体系统中的前置门户入口,请求首先通过网关,进行路径的路由,定位到具体的服务节点上。二、什么是Zuul--------- (1)Zuul是一个微服务网关,也是会在Eureka注册中心中进行服务的注册和发现 ,请求应该通过Zull来进行路由。 (2)Zuul网关不是必要的,是推荐使用的,一般在微服务数量较多(多于10个)的时候推荐使用,对服务的管理有严格要求的时候推荐使用,当微服务权限要求严格的时候推荐使用。 (3)Zuul包含了对请求的路由和过滤两个最主要功能: 路由功能 :负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础。* 过滤器功能 :负责对请求的处理过程进行干预,是实现请求校验,服务聚合等功能的基础。三、Zuul 能做什么?------------Zuul可以通过加载动态过滤机制,从而实现以下各项功能:(1)验证与安全保障 : 识别面向各类资源的验证要求并拒绝那些与要求不符的请求。(2)审查与监控 : 在边缘位置追踪有意义数据及统计结果,从而为我们带来准确的生产状态结论。(3)动态路由 : 以动态方式根据需要将请求路由至不同后端集群处。(4)压力测试 : 逐渐增加指向集群的负载流量,从而计算性能水平。(5)负载分配 : 为每一种负载类型分配对应容量,并弃用超出限定值的请求。(6)静态响应处理 : 在边缘位置直接建立部分响应,从而避免其流入内部集群。(7)多区域弹性 : 跨越AWS区域进行请求路由,旨在实现ELB使用多样化并保证边缘位置与使用者尽可能接近。除此之外,Netflix公司还利用Zuul的功能通过金丝雀版本实现精确路由与压力测试 。四、Zuul和Eureka整合---------------> Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。
五、搭建Zuul--------### 5.1 建立Maven父工程编写pom.xml: org.springframework.cloud spring-cloud-alibaba-dependencies 0.2.0.RELEASE pom import org.springframework.cloud spring-cloud-dependencies Hoxton.SR12 pom import org.springframework.boot spring-boot-dependencies 2.3.12.RELEASE pom import ### 5.2 建立子工程> 注意:同样是Maven
### 5.3 配置服务中心 springcloud-eureka-7001**(1)建立以下目录****
(2)导入依赖** org.springframework.cloud spring-cloud-starter-eureka-server 1.4.6.RELEASE org.springframework.boot spring-boot-devtools **(3)编写配置文件 application.yml:** server: port: 7001 # Eureka配置 eureka: instance: # Eureka服务端的实例名字 hostname: localhost client: # 表示是否向 Eureka 注册中心注册自己(这个模块本身是服务器,所以不需要) register-with-eureka: false # fetch-registry如果为false,则表示自己为注册中心,客户端的化为 ture fetch-registry: false # Eureka监控页面~ service-url: defaultZone: http:// e u r e k a . i n s t a n c e . h o s t n a m e : {eureka.instance.hostname}: eureka.instance.hostname:{server.port}/eureka/ (4)编写启动类 package com.yixin.springcloud; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class EurekaServer_7001 { public static void main(String\[\] args) { SpringApplication.run(EurekaServer_7001.class, args); } }### 5.4 配置服务生产方springcloud-provider-blog-8001**(1)建立以下目录****
(2)导入依赖** org.springframework.cloud spring-cloud-starter-eureka 1.4.6.RELEASE org.springframework.boot spring-boot-test 2.4.5 org.springframework.boot spring-boot-starter-web 2.4.5 org.springframework.boot spring-boot-test 2.4.5 org.springframework.boot spring-boot-starter-jetty 2.5.2 org.springframework.boot spring-boot-devtools (3)编写配置类 server: port: 8001 spring: application: name: springcloud-provider-blog # Eureka配置:配置服务注册中心地址 eureka: client: service-url: defaultZone: http://localhost:7001/eureka/ instance: instance-id: springcloud-provider-dept-8001 #修改Eureka上的默认描述信息 (4)编写BlogController package com.yixin.springcloud.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @RestController public class BlogController { //表示db这个数据库 @Value("dbsource") private String dbsource; @GetMapping("/blog/info/{id}") public String getInfo(@PathVariable("id") Integer id){ return dbsource+id; } }(5)编写启动类 package com.yixin.springcloud; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @SpringBootApplication @EnableEurekaClient public class BlogProvider_8001 { public static void main(String\[\] args) { SpringApplication.run(BlogProvider_8001.class,args); } }### 5.5 配置路由网关springcloud-zuul**(1)建立以下目录
(2)导入依赖** org.springframework.cloud spring-cloud-starter-zuul 1.4.6.RELEASE org.springframework.cloud spring-cloud-starter-eureka 1.4.6.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-devtools (3)编写配置类 server: port: 9527 spring: application: name: springcloud-zuul-yixin eureka: client: service-url: defaultZone: http://localhost:7001/eureka/ instance: instance-id: zuul9527.com prefer-ip-address: true zuul: routes: mydept.serviceId: springcloud-provider-blog mydept.path: /myblog/** ignored-services: springcloud-provider-dept # 不能再使用该路径访问 # ignored-services: " " # 隐藏全部的 prefix: /yixin #公共的访问前缀> 注意:经过我们的路由网关规则配置, > > 原来访问 :http://localhost:9527/springcloud-provider-blog/blog/info/5\> > 配置过后访问 :http://localhost:9527/yixin/myblog/blog/info/5\*\*(4)编写启动类\*\*\> 注意:添加注解@EnableZuulProxy开启Zuul。 package com.yixin.springcloud; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.zuul.EnableZuulProxy; @SpringBootApplication @EnableZuulProxy // 开启Zuul public class ZuulApplication_9527 { public static void main(String\[\] args) { SpringApplication.run(ZuulApplication_9527.class,args); } }### 5.6 测试> 依次启动: > > a、springcloud-eureka-7001:服务注册中心 > > b、springcloud-provider-blog-8001:服务生产方 > > c、springcloud-zuul:路由网关 > **(1)访问:http://localhost:7001/\*\*出现以下界面,说明成功把我们的两个服务(服务生产方和路由网关)注册进来了。\> **(2)访问:http://localhost:9527/yixin/myblog/blog/info/6 注意:是9527端口! **
我们看到,微服务名称被替换并隐藏,换成了我们自定义的微服务名称myblog,同时加上了前缀yixin,这样就做到了对路由访问的加密处理!**> **(3)访问:http://localhost:9527/springcloud-provider-blog/blog/info/5 由于我们在配置文件中配置了以下语句,所以这样访问是不允许的。** ignored-services: springcloud-provider-dept # 不能再使用该路径访问
> (4)如果我们不配置zuul规则,那么上面的链接是可以正常访问的 application.yml server: port: 9527 spring: application: name: springcloud-zuul-yixin eureka: client: service-url: defaultZone: http://localhost:7001/eureka/ instance: instance-id: zuul9527.com prefer-ip-address: true重启spring-zuul> 重新访问:http://localhost:9527/springcloud-provider-blog/blog/info/5
至此,测试成功! * *小结--以上就是【一心同学 】对基于Spring Cloud对其组件【路由网关Zuul 】的讲解,我们要记住其两个最核心的功能【路由 】和【过滤 】,通过对路由网关的处理,可以做到对我们的访问进行【加密处理 】!> 如果这篇【文章 】有帮助到你,希望可以给【一心同学 】点个赞??,创作不易,相比官方的陈述,我更喜欢用【**通俗易懂】**的文笔去讲解每一个知识点,如果有对【后端技术 】感兴趣的小可爱,也欢迎关注【一心同学 】,我将会给你带来巨大的【收获与惊喜】???!
Spring Cloud——路由网关Zuul
2601_962122972026-08-30 8:42
相关推荐
卷无止境15 分钟前
从一杯咖啡的订单说起,数据库设计到底是怎么长出来的再吃一根胡萝卜24 分钟前
Rust 桌面宠物拖拽踩坑实录:重影、不跟手、置顶失效再吃一根胡萝卜25 分钟前
Rust 桌面宠物进化记:从静态图标到会动的"QQ 宠物"2601_9620662344 分钟前
SpringBoot3 快速启动框架卷无止境3 小时前
Python能做嵌入式开发吗?一份写给动手派的生态与硬件全景图Sherotree9 小时前
Google Antigravity——Agent 被提到主界面2601_962056239 小时前
Spring Boot 入门 与 无法解析符号 springframework 的解决亚历克斯神10 小时前
低代码与 AI 的融合趋势——从可视化搭建到自然语言生成应用你驴我10 小时前
WhatsApp 多账号场景下的会话归档与历史消息检索优化实践
五、搭建Zuul--------### 5.1 建立Maven父工程编写pom.xml: org.springframework.cloud spring-cloud-alibaba-dependencies 0.2.0.RELEASE pom import org.springframework.cloud spring-cloud-dependencies Hoxton.SR12 pom import org.springframework.boot spring-boot-dependencies 2.3.12.RELEASE pom import ### 5.2 建立子工程> 注意:同样是Maven
### 5.3 配置服务中心 springcloud-eureka-7001**(1)建立以下目录****
(2)导入依赖** org.springframework.cloud spring-cloud-starter-eureka-server 1.4.6.RELEASE org.springframework.boot spring-boot-devtools **(3)编写配置文件 application.yml:** server: port: 7001 # Eureka配置 eureka: instance: # Eureka服务端的实例名字 hostname: localhost client: # 表示是否向 Eureka 注册中心注册自己(这个模块本身是服务器,所以不需要) register-with-eureka: false # fetch-registry如果为false,则表示自己为注册中心,客户端的化为 ture fetch-registry: false # Eureka监控页面~ service-url: defaultZone: http:// e u r e k a . i n s t a n c e . h o s t n a m e : {eureka.instance.hostname}: eureka.instance.hostname:{server.port}/eureka/ (4)编写启动类 package com.yixin.springcloud; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class EurekaServer_7001 { public static void main(String\[\] args) { SpringApplication.run(EurekaServer_7001.class, args); } }### 5.4 配置服务生产方springcloud-provider-blog-8001**(1)建立以下目录****
(2)导入依赖** org.springframework.cloud spring-cloud-starter-eureka 1.4.6.RELEASE org.springframework.boot spring-boot-test 2.4.5 org.springframework.boot spring-boot-starter-web 2.4.5 org.springframework.boot spring-boot-test 2.4.5 org.springframework.boot spring-boot-starter-jetty 2.5.2 org.springframework.boot spring-boot-devtools (3)编写配置类 server: port: 8001 spring: application: name: springcloud-provider-blog # Eureka配置:配置服务注册中心地址 eureka: client: service-url: defaultZone:
(2)导入依赖** org.springframework.cloud spring-cloud-starter-zuul 1.4.6.RELEASE org.springframework.cloud spring-cloud-starter-eureka 1.4.6.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-devtools (3)编写配置类 server: port: 9527 spring: application: name: springcloud-zuul-yixin eureka: client: service-url: defaultZone:
我们看到,微服务名称被替换并隐藏,换成了我们自定义的微服务名称myblog,同时加上了前缀yixin,这样就做到了对路由访问的加密处理!**> **(3)访问:
> (4)如果我们不配置zuul规则,那么上面的链接是可以正常访问的 application.yml server: port: 9527 spring: application: name: springcloud-zuul-yixin eureka: client: service-url: defaultZone:
至此,测试成功! * *小结--以上就是【一心同学 】对基于Spring Cloud对其组件【路由网关Zuul 】的讲解,我们要记住其两个最核心的功能【路由 】和【过滤 】,通过对路由网关的处理,可以做到对我们的访问进行【加密处理 】!> 如果这篇【文章 】有帮助到你,希望可以给【一心同学 】点个赞??,创作不易,相比官方的陈述,我更喜欢用【**通俗易懂】**的文笔去讲解每一个知识点,如果有对【后端技术 】感兴趣的小可爱,也欢迎关注【一心同学 】,我将会给你带来巨大的【收获与惊喜】???!