专辑目录:SpringCloud学习日志
网关的概念:
我举个例子,我们到银行取钱,但是我们不能自己到金库里去拿钱,而是通过柜台服务员取钱。这时候柜台服务员就是网关,如果你没有存折和密码(相当于账号和密码),那么柜台服务员就不会给你取钱,这就是网关登录验证。柜台服务员并不印钱,只是帮你取出钱而已,网关不处理业务逻辑,只是做一些登录验证、日志服务等,类似过滤器的功能。
在微服务中,业务处理服务、配置中心、注册中心等这些服务都是内网环境的,外部并不能服务,网关服务是外网可访问的。就像柜台服务员可以在柜台后面做事,但你只能让她帮你做事,你无法进入柜台后面,如果她不帮你做,你就什么都做不了。所以一般部署微服务项目时,网关服务部署在外网服务器,其他服务部署在内网服务器。
接下来我们在原来已经搭建了配置中心的情况下创建一个网关服务。先看项目结构
原来的项目不用动。新增一个springcloud-gateway-zuul
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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.study</groupId>
<artifactId>springcloud-gateway-zuul</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springcloud-gateway-zuul</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifac