Zuul API网关介绍

本文概述

  • 什么是祖尔?
  • 为什么我们使用Zuul?
  • Zuul组件
  • 设置Zuul API网关服务器
什么是祖尔? Zuul服务器是API网关应用程序。它处理所有请求并执行微服务应用程序的动态路由。它充当所有请求的前门。也称为边缘服务器。
Zuul旨在实现动态路由, 监视, 弹性和安全性。它还可以将请求路由到多个Amazon Auto Scaling组。
例如, / api / products映射到产品服务, / api / user映射到用户服务。 Zuul服务器将请求动态路由到相应的后端应用程序。
为什么我们使用Zuul? Netflix API流量的数量和种类有时会导致生产问题, 这些问题会迅速出现, 而不会发出警告。因此, 我们需要一个能够快速改变行为以对这些情况做出反应的系统。
Zuul提供了一系列不同类型的过滤器, 使我们能够快速灵活地将功能应用于边缘服务。筛选器执行以下功能:
  • 身份验证和安全性:它提供每种资源的身份验证要求。
  • 见解和监控:它跟踪有意义的数据和统计数据, 从而使我们能够准确地了解生产情况。
  • 动态路由:根据需要将请求动态路由到不同的支持集群。
  • 压力测试:它增加了到群集的流量以测试性能。
  • 减载:它为每种类型的请求分配容量, 并丢弃超出限制的请求。
  • 静态响应处理:它直接在边缘构建一些响应, 而不是将其转发到内部集群。
  • 多区域弹性:它跨AWS区域路由请求, 以多样化我们的ELB用法。
Zuul组件 Zuul 2.x组件:
  • zuul-core:它是一个包含Zuul 2.0核心功能的库。
  • zuul-sample:这是Zuul 2.0的示例驱动程序应用程序
Zuul 1.x组件:
  • zuul-core:定义核心功能。
  • zuul-simple-webapp:一个Web应用程序, 显示了一个如何使用zuul-core构建应用程序的简单示例。
  • zuul-netflix:这是一个向Zuul添加其他NetflixOSS组件的库。
  • zuul-netflix-webapp:这是一个将zuul-core和zuul-netflix打包在一起的webapp。
设置Zuul API网关服务器 设置Zuul API网关的过程分为三个步骤:
  • 为Zuul API网关创建一个组件
  • 确定Zuul API网关应做的事情
  • 所有重要的请求都配置为通过Zuul API网关传递
请按照以下步骤设置Zuul API网关服务器。
步骤1:打开Spring Initializr https://start.spring.io。
步骤2:提供群组名称。我们提供了com.srcmini.microservices。
步骤3:提供工件。我们提供了netflix-zuul-api-gateway-server。
步骤4:添加以下依赖项:Zuul, Eureka Discovery, Actuator和DevTools。
Zuul API网关介绍

文章图片
步骤5:点击Generate(生成)按钮。它将开始将项目打包为zip文件并下载。
Zuul API网关介绍

文章图片
第6步:解压缩zip文件并将其粘贴到Spring Tool Suite的工作区中。
步骤7:在STS IDE中导入项目。
文件-> 导入-> 现有Maven项目-> 浏览-> 选择netflix-zuul-api-gateway-server-> 选择文件夹-> 完成
导入需要一些时间。
步骤8:打开NetflixZuulApiGatewayServerApplication.java文件, 并分别使用注释@EnableZuulProxy和@EnableDiscoveryClient启用zuul代理和发现客户端。
NetflixZuulApiGatewayServerApplication.java
package com.srcmini.microservices.netflixzuulapigatewayserver; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.netflix.zuul.EnableZuulProxy; @EnableZuulProxy@EnableDiscoveryClient@SpringBootApplicationpublic class NetflixZuulApiGatewayServerApplication {public static void main(String[] args) {SpringApplication.run(NetflixZuulApiGatewayServerApplication.class, args); }}

步骤9:打开application.properties文件, 并配置应用程序名称, 端口和eureka命名服务器。
application.properties
spring.application.name=netflix-zuul-api-gateway-serverserver.port=8765eureka.client.service-url.default-zone=http://localhost:8765/eureka

【Zuul API网关介绍】点击这里下载netflix-zuul-api-gateway-server

    推荐阅读