SpringCloud微服务

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。
Zuul API网关
步骤5: 单击 Generate (生成)按钮。它将开始将项目打包到 zip 文件中并下载。
Zuul API Gateway
步骤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

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4