Spring Cloud Alibaba Nacos_配置中心与服务发现(六)–综合架构实战(5)
一、 Nacos 服务发现-Spring Cloud Alibaba 综合架构实战(五) -实现 gateway 网关。
1、什么是网关?
原来的单体架构,所有的服务都是本地的,UI 可以直接调用,现在按功能拆分成独立的服务,
跑在独立的一般都在独立的虚拟机上的 java 进程了。
客户端 UI 如何访问?
他的后台有 N 个服务,前台就需要记住管理 N 个服务,一个服务下线/更新/升级,
前台就要重新部署,这明显不符合拆分的理念,特别是当前台是移动应用的时候,
通常业务变化的节奏更快。另外,N 个小服务的调用也是一个不小的网络开销。
有了网关作为服务统一入口,就可以避免上述问题,不仅如此,服务网关是在微服务前面设置一道屏障,
请求先到服务网关,网关会对请求进行过虑、校验、路由等处理。有了服务网关可以提高微服务的安全性,
网关请求的合法性,请求不合法将被拦截,拒绝访问。
网关提供统一服务入口,让微服务对前台透明。
网关聚合后台的服务,节省流量,提升性能。
网关提供安全、过滤、流控等 API 管理功能。
2、什么是 Zuul ?
Spring Cloud Zuul 是整合 Netflix 公司的 Zuul 开源项目实现的微服务网关(API Gateway)。
它实现了请求路由、负载均衡、校验过滤等功能。
Zuul 官网:https://github.com/Netflix/zuul
3、Zuul 与 Nginx 在实际项目中,需要配合使用,Nginx 的作用是反向代理、负载均衡, Zuul 的作用是保障微服务的安全访问,拦截微服务请求,校验合法性及负载均衡。
4、在 api-gateway 子模块的 pom.xml 配置文件中,引入 所需 依赖项。
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>nacos-micro-service</artifactId>
<groupId>djh.it</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>api-gateway</ar