当前位置: 首页 > news >正文

微服务网关Zuul

一、Zuul简介

Zuul是Netflix开源的微服务网关,包含对请求的路由和过滤两个主要功能。

1)路由功能:负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础。

2)过滤功能:负责对请求的过程进行干预,可以实现请求校验、服务聚合等功能。

二、Zuul代码实现

1)在pom.xml中引入依赖

注意:系统中所有的微服务须连接至Eureka注册中心。Eureka搭建详见另一篇博文:微服务1:搭建微服务注册中心Eureka(命令行简易版,不使用IDE)-CSDN博客

 	<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-zuul</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>   

完整的pom.xml如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.test</groupId><artifactId>microservice-zuul</artifactId><packaging>jar</packaging><version>1.0-SNAPSHOT</version><name>microservice-zuul</name><url>http://maven.apache.org</url><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.0.RELEASE</version><relativePath/> </parent><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>   <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId></dependency> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-zuul</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Hoxton.SR4</version><type>pom</type><scope>import</scope></dependency>               </dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

2)配置application.yml

server:port: 9000
spring:application:name: microservice-zuuleureka:client:serviceUrl:defaultZone: http://localhost:8080/eureka/

3)在App.java中添加注解

@EnableDiscoveryClient
@EnableZuulProxy

package com.test;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication
@EnableDiscoveryClient
@EnableZuulProxy
public class App 
{public static void main(String[] args) {SpringApplication.run(App.class, args);}}

三、Zuul测试

在浏览器中输入:

http://localhost:9000/microservice-consumer/users/4

其中microservice-consumer是实际要访问的微服务名称,如果不加Zuul,则该服务的访问URL为:

http://localhost:8010/users/3

使用Zuul网关之后,客户端无需知道每个微服务的端口号,即可通过网关端口号9000来统一访问到系统中所有的微服务。

http://www.lryc.cn/news/469098.html

相关文章:

  • BuildCTF线上赛WP
  • 《使用Gin框架构建分布式应用》阅读笔记:p143-p207
  • 华为网络管理配置实例
  • 大语言模型数据处理方法(基于llama模型)
  • 爱奇艺大数据多 AZ 统一调度架构
  • 【C++篇】栈的层叠与队列的流动:在 STL 的韵律中探寻数据结构的优雅之舞
  • 使用 Flask 实现简单的登录注册功能
  • 计算机毕业设计Python+大模型微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
  • CTF--Misc题型小结
  • 深度学习系列——RNN/LSTM/GRU,seq2seq/attention机制
  • 通过call指令来学习指令摘要表的细节
  • 10分钟使用Strapi(无头CMS)生成基于Node.js的API接口,告别繁琐开发,保姆级教程,持续更新中。
  • 创建插件 DLL 项目
  • OpenCV双目相机外参标定C++
  • 【GESP】C++一级练习BCQM3055,4位数间隔输出
  • 纯血鸿蒙的最难时刻才开始
  • 记一个mysql的坑
  • Java中的设计模式:单例模式详解
  • NanoTrack原理与转tensorrt推理
  • YOLO11改进 | 卷积模块 | 卷积模块替换为选择性内核SKConv【附完整代码一键运行】
  • CentOS进入单用户模式进行密码重置
  • bitpoke- mysql-operator cluster
  • 第5课 基本数据类型
  • OceanBase 首席科学家阳振坤:大模型时代的数据库思考
  • 国内知名的几个镜像源
  • 海外著名新闻门户媒体软文发稿之华盛顿独立报-大舍传媒
  • 青少年编程与数学 02-002 Sql Server 数据库应用 13课题、函数的编写
  • 关于LaTeX的floatrow包导入后标题无法直接放到浮动体上方
  • Flutter Image和Text图文组件实战案例
  • 使用 xlrd 和 xlwt 库进行 Excel 文件操作