本文概述
- 什么是祖尔?
- 为什么我们使用Zuul?
- Zuul组件
- 设置Zuul API网关服务器
Zuul旨在实现动态路由, 监视, 弹性和安全性。它还可以将请求路由到多个Amazon Auto Scaling组。
例如, / api / products映射到产品服务, / api / user映射到用户服务。 Zuul服务器将请求动态路由到相应的后端应用程序。
为什么我们使用Zuul? Netflix API流量的数量和种类有时会导致生产问题, 这些问题会迅速出现, 而不会发出警告。因此, 我们需要一个能够快速改变行为以对这些情况做出反应的系统。
Zuul提供了一系列不同类型的过滤器, 使我们能够快速灵活地将功能应用于边缘服务。筛选器执行以下功能:
- 身份验证和安全性:它提供每种资源的身份验证要求。
- 见解和监控:它跟踪有意义的数据和统计数据, 从而使我们能够准确地了解生产情况。
- 动态路由:根据需要将请求动态路由到不同的支持集群。
- 压力测试:它增加了到群集的流量以测试性能。
- 减载:它为每种类型的请求分配容量, 并丢弃超出限制的请求。
- 静态响应处理:它直接在边缘构建一些响应, 而不是将其转发到内部集群。
- 多区域弹性:它跨AWS区域路由请求, 以多样化我们的ELB用法。
- zuul-core:它是一个包含Zuul 2.0核心功能的库。
- zuul-sample:这是Zuul 2.0的示例驱动程序应用程序
- 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网关传递
步骤1:打开Spring Initializr https://start.spring.io。
步骤2:提供群组名称。我们提供了com.srcmini.microservices。
步骤3:提供工件。我们提供了netflix-zuul-api-gateway-server。
步骤4:添加以下依赖项:Zuul, Eureka Discovery, Actuator和DevTools。
文章图片
步骤5:点击Generate(生成)按钮。它将开始将项目打包为zip文件并下载。
文章图片
第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
推荐阅读
- Spring安全功能介绍
- Spring Cloud通过Zuul API网关执行请求
- 了解对Spring Cloud Bus的需求
- 安装RabbitMQ服务器详细步骤图解
- Spring Cloud API网关简介
- Spring Cloud实现Zuul日志过滤器
- Url Scheme实现APP间通信分享
- Android 冷兵器 之 tools
- Reading SBAR SDN flow-Based monitoring and Application Recognition