SpringCloud Zuul API网关



SpringCloud Zuul API网关

什么是Zuul?

Zuul Server是API网关应用程序。它处理所有请求并执行微服务应用程序的动态路由。它充当所有请求的前门。它也称为
边缘服务器。
Zuul旨在实现
动态路由,监视,弹性,
安全性。它还可以将请求路由到多个
Amazon Auto Scaling组
例如,
/api/products 映射到
产品服务和
/api/user 映射到
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: 是一个将其他NetflixOSS组件添加到Zuul的库。
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:
Group名称。我们已经提供了
com.lidihuo.microservices。
步骤3: 提供
Artifact id,我们提供了
netflix-zuul-api-gateway-server。
步骤4: 添加以下依赖项:
Zuul,Eureka Discovery,Actuator
DevTools。

SpringCloud Zuul API网关_https://bianchenghao6.com_【SpringCloud 教程】_第1张

步骤5: 单击
Generate (生成)按钮。它将开始将项目打包到
zip 文件中并下载。

SpringCloud Zuul API网关_https://bianchenghao6.com_【SpringCloud 教程】_第2张

步骤6: 提取压缩文件并将其粘贴到Spring Tool Suite的工作区中。
步骤7: 导入项目
文件->导入->现有Maven项目->浏览->选择
netflix-zuul-api-gateway-server ->选择文件夹->完成
导入需要一些时间。
步骤8: 打开
NetflixZuulApiGatewayServerApplication.java 文件并启用zuul代理和发现分别使用
@EnableZuulProxy
@EnableDiscoveryClient
NetflixZuulApiGatewayServerApplication.java
package com.lidihuo.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
@SpringBootApplication
public 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-server
server.port=8765
eureka.client.service-url.default-zone=http://localhost:8765/eureka