介绍:网关是微服务的重要组成之一,目前常用的有Nginx/Zuul/Gateway。
模块一 组件对比:
- Nginx是一个高性能的服务器,可用来做网关、代理等,Nginx选作网关时,常用来提供整个公司的统一入口。相比作为业务网关,Zuul和Gateway更容易集成。
- Zuul 是Netflix开源的网关,其原理是基于过滤器实现,连接客户端默认是Apache的HTTP Client。它可以和Eureka等组件组合集成使用。目前Zuul1.x已停止维护,2.X版本虽然已开源,但SpringCloud中使用的还是1.x版本。
- SpringCloudGateway是SpringCloud生态体系中的网关,目的是代替Zuul网关,其原理也是基于Filter链来实现的,底层依赖reactor非阻塞编程模型和webflux。
模块二 组件使用:
- Zuul:
①引入依赖,SpringCloud的版本为Greenwich.SR2
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
②服务路由转发为配置文件yml配置方式
spring:
application:
nam