服务网关
Spring Cloud集成了Zuul组件,实现服务网关
什么是Zuul?
Zuul是Netflix提供的一个开源的API 网关服务器,是客户端和网站后端所有请求的中间层,
对外开放一个API,将所有请求导入统一的入口,屏蔽了服务端的具体实现逻辑,Zuul可以
实现反向代理的功能,在网关内部实现动态路由、身份认证、IP过滤、数据监控等。
Zuul自带了负载均衡功能。
代码实现
1.创建Module模块zuul,pom.xml加入依赖
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> <version>2.0.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> <version>2.2.2.RELEASE</version> </dependency> </dependencies>
2.在src.main.resources文件夹下创建配置文件application.yml
server: port: 8030 spring: application: name: gateway eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ zuul: routes: provider: /p/**
属性说明:
zuul.routes.provider:给服务提供者provider设置映射
3.在src.main.java.com.example创建启动类ZuulApplication
package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.cloud.netflix.zuul.EnableZuulProxy; @EnableZuulProxy @EnableAutoConfiguration public class ZuulApplication { public static void main(String[] args) { SpringApplication.run(ZuulApplication.class,args); } }
注解说明:
@EnableZuulProxy :包含了@EnableZuulServer,设置该类是网关的启动类
@EnableAutoConfiguration :可以帮助Spring Boot应用将所有符合条件的@Configuration配置
加载到当前Spring Boot创建并使用的IoC容器中。
4.启动springCloud学习笔记一中的eurekaserver和eurekaclient服务
启动zuul服务
访问http://localhost:8030/p/student/findAll验证