zoukankan      html  css  js  c++  java
  • SpringCloud笔记七:Zuul

    什么是Zull

    Zuul就是一个网关,实现的功能:代理、路由、过滤这三大功能

    举个例子,一个大型商场,eureka是大型商场,服务是里面的商店,Zuul就是商场的保安。所以Zuul是需要注册进eureka的,没商场保安

    为什么需要Zuul

    这个你想想为什么商场需要保安就明白了....

    下面是官方的回答,你看看就得了,没必要记

    • 身份验证和安全性 - 确定每个资源的身份验证要求并拒绝不满足这些要求的请求。
    • 洞察和监控 - 在边缘跟踪有意义的数据和统计数据,以便为我们提供准确的生产视图。
    • 动态路由 - 根据需要动态地将请求路由到不同的后端群集。
    • 压力测试 - 逐渐增加群集的流量以衡量性能。
    • Load Shedding - 为每种类型的请求分配容量并删除超过限制的请求。
    • 静态响应处理 - 直接在边缘构建一些响应,而不是将它们转发到内部集群
    • 多区域弹性 - 跨AWS区域路由请求,以使我们的ELB使用多样化,并使我们的优势更接近我们的成员

    新建Zuul项目

    新建项目zuul-gateway-9527,给主方法加上@EnableZuulProxy注解

    yml文件如下:

    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$
    
    
    

    Maven的pom文件

    <!-- zuul路由网关 -->
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-starter-zuul</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-starter-eureka</artifactId>
    		</dependency>
    		<!-- actuator监控 -->
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-actuator</artifactId>
    		</dependency>
    

    其实重要的是spring-cloud-starter-zuul这个

    我们在hosts文件中添加一个Zuul的映射,模拟我们有服务器的样子

    127.0.0.1 myzuul.com

    这样我们就直接访问myzuul.com加端口号访问Zuul,假装我们有服务器的样子。

    运行Zuul

    启动eureka集群,启动一个provider服务,启动Zuul,浏览器输入

    http://localhost:8001/dept/get/1,这当然是可以访问的。

    现在浏览器输入Zuul的地址加服务名称加接口,这样我们就实现了通过Zuul进行访问服务,浏览器输入http://myzuul.com:9527/microservicecloud-dept/dept/get/1

    可以看到,也是可以访问的。

    Zuul的基本配置

    上面我们运行了Zuul,通过Zuul访问服务成功,现在来配置一下Zuul,这个保安不能只站着,啥也不做吧,保安起码还得会巡逻,擒拿,疏散人群,突发应急等技能

    忽略微服务的真实名称

    在yml文件加如下内容

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

    这个是忽略微服务的真实名称,下面是忽略一个微服务

    ignored-services: microservicecloud-dept
    

    下面这个是忽略所有的微服务

    ignored-services: "*"
    

    这个是忽略真实名称后的替代名称

    mydept.path: /mydept/**
    

    其实,我不知道为什么要忽略真实的服务名,而使用一个替代名。

    设置统一公共前缀

    还是上面的,就是这个

    prefix: /Vae
    

    这个是为了方便的归类吧,这个时候在访问Zuul的时候,服务名前就要加上Vae了

    总结

    Zuul就是一个网关,保安,其实我们这学的只有忽略服务真实名称和设置统一前缀而已,Zuul的功能应该不仅于此。更多的用到再学吧。

    防盗链接:本博客由蜀云泉发表

  • 相关阅读:
    C#中的String.Format()方法
    JQuery中的each方法
    [开发笔记]-使用jquery获取url及url参数的方法
    ThinkPHP3.2.3学习笔记3---视图
    PHP命名空间namespace使用小结
    ThinkPHP3.2.3学习笔记2---模型
    PHP中的连贯操作
    关于新技术的学习问题
    ThinkPHP3.2.3学习笔记1---控制器
    WinXP下如何安装及御载MySQL服务
  • 原文地址:https://www.cnblogs.com/yunquan/p/10757557.html
Copyright © 2011-2022 走看看