Zuul路由网关

一、概述

1.Zuul是什么

  • Zuul包含了对请求的路由和过滤两个最主要的功能:
    其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.

  • Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。

    注意:Zuul服务最终还是会注册进Eureka

提供=代理+路由+过滤三大功能

2.能干嘛

路由、过滤

3.官网资料

https://github.com/Netflix/zuul/wiki/Getting-Started

二、路由基本配置

1.创建路由工程

2.pom引入Eureka和zuul的依赖

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

3.yml配置Eureka和应用信息

server:   
   port:  9527 

spring:   
   application: 
     name:  microservicecloud-zuul-gateway 

eureka:   
   client:   
     service-url:   
       defaultZone:  http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka   
   instance: 
     instance-id:  gateway-9527.com 
     prefer-ip-address:   true   

info: 
   app.name:  atguigu-microcloud 
   company.name:  www.atguigu.com 
   build.artifactId:  $project.artifactId$ 
   build.version:  $project.version$ 

4.启动类添加@EnableZuulProxy

import  org.springframework.boot.SpringApplication; 
import  org.springframework.boot.autoconfigure.SpringBootApplication; 
import  org.springframework.cloud.netflix.zuul.EnableZuulProxy; 

@SpringBootApplication 
@EnableZuulProxy 
public   class  Zuul_9527_StartSpringCloudApp 
{ 
   public   static   void  main(String[]  args ) 
  { 
   SpringApplication. run (Zuul_9527_StartSpringCloudApp. class ,  args ); 
  } 
} 

5.测试和使用

直接访问:http://localhost:8001/dept/get/2
通过路由访问:http://myzuul.com:9527/microservicecloud-dept/dept/get/2

三、路由访问映射规则

1.Zuul代理原先的名称

zuul:  
   routes:   
     mydept.serviceId:  microservicecloud-dept 
     mydept.path:  /mydept/ ** 

before
http://myzuul.com:9527/ microservicecloud-dept /dept/get/2
after
http://myzuul.com:9527/ mydept /dept/get/1

注释:此时before和after都可以访问

2.禁用原访问路径yml(ignored-services)

zuul:   
   ignored-services: microservicecloud-dept  
   routes:   
     mydept.serviceId:  microservicecloud-dept 
     mydept.path:  /mydept/ ** 

另一种方案

zuul:   
   ignored-services: "*"   ##  单个具体,多个可以用"*"
   routes:   
     mydept.serviceId:  microservicecloud-dept 
     mydept.path:  /mydept/ ** 

3.设置统一前缀

zuul:   
  prefix: /sender
   ignored-services:  "*" 
   routes:   
     mydept.serviceId:  microservicecloud-dept 
     mydept.path:  /mydept/ ** 

验证:http://myzuul.com:9527/`sender`/mydept/dept/get/1


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 18846433665@163.com

文章标题:Zuul路由网关

文章字数:555

本文作者:Xu Shengcai

发布时间:2019-10-09, 15:20:52

最后更新:2019-10-09, 22:37:59

原始链接:http://yoursite.com/2019/10/09/Zuul路由网关/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏