Spring Cloud 之 Zuul 服务网关Gateway

匿名 (未验证) 提交于 2019-12-03 00:41:02



zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。

Zuul 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。

Gateway(网关)是微服务架构的不可获取的一个部分,Gateway为客户点提供了统一访问的入口,Netflix Zuul是

Spring Cloud默认使用的Gateway组件

Zuul是Netflix出品的一个路由和服务端的负载均衡组件

1、打开idea新建springBoot项目

创建完成项目后,可以发现pom.xml文件中的这两个依赖

         <dependency>             <groupId>org.springframework.cloud</groupId>             <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.cloud</groupId>             <artifactId>spring-cloud-starter-netflix-zuul</artifactId>         </dependency>

2、在项目的主类上添加注解

@EnableDiscoveryClient //注册客户端

@EnableZuulProxy //启用路由

 package vip.ablog.gateway;  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;  @SpringBootApplication @EnableDiscoveryClient   //注册客户端 @EnableZuulProxy   //启用路由 //Zuul路由的访问规则是 :  http://xxxxx:xxx/server-id/... //                       这里的server-id值得就是Server的application.name public class GatewayApplication {      public static void main(String[] args) {         SpringApplication.run(GatewayApplication.class, args);     } }

3、编辑配置文件application.yml配置文件,进行编辑

这里的 zull-routes:代表客户端访问的路由地址;

在启用网关以后,客户端访问所有的接口都采用统一规则进行访问:

Zuul路由的访问规则是 : http://xxxxx:xxx/server-id/...

 spring:   application:     name: gateway eureka:   client:     service-url:       defaultZone: http://localhost:9001/eureka/ server:   port: 7000 zuul:   routes:     client: /c/**     member: /m/**     book: /b/**

5、上图可以看到客户端member的端口虽然是8000,但是我们可以访问网关的7000端口再加上我们网关配置文件中设置的路由地址即可访问客户端member

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!