• SpringCloud-6-Zuul


    Zuul

    1. 概述

    • Zuul包含了对请求的路由过滤两个最主要的功能
    • Zuul和Eureka进行整合, 将Zuul自身注册为Eureka服务治理下的应用, 同时从Eureka中获得其他微服务的信息, 也即以后的访问微服务是通过Zuul跳转后获得
    • Zuul服务最终还是回注册进Eureka
    • 提供: 代理 + 路由 + 过滤 三大功能

    2. 使用Zuul

    1. 导入依赖

    由于Zuul要注册到Eureka中, 因此需要同时导入Eureka和Zuul的依赖

    <!--Eureka-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
        <version>1.4.6.RELEASE</version>
    </dependency>
    <!--Zuul-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zuul</artifactId>
        <version>1.4.6.RELEASE</version>
    </dependency>
    

    2. 配置Zuul

    server:
      port: 9527
    
    spring:
      application:
        name: springcloud-zuul
    
    eureka:
      client:
        service-url:
          defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
      instance:
        instance-id: zuul_9572.com
        prefer-ip-address: true
    
    info:
      app.name: wang-springcloud
      company.name: wangStudy.com
      
    zuul:
      routes:
        mydept: 
          serviceId: springcloud-provider-dept
          path: /mydept/**
    #  ignored-services: springcloud-provider-dept #不能再使用这个路径访问了
      ignored-services: "*"   #隐藏全部的真实服务名
      prefix: /wang   #设置公共的访问前缀
    

    我们这里使用9527端口

    注意

    • Zuul要注册到Eureka中, 因此要配置服务名以及Eureka发现
    • 在zuul的配置中, serviceId属性指定一个微服务的名字, path指定这个微服务被zuul重定向后的位置, 这样就可以实现隐藏我们微服务的真实的名称
    • 在zuul的配置中, ignored-services表示要隐藏的服务, 指定了某个服务之后, 就不能用真实的服务名访问了, 提高了安全性. 我们可以用 "*" 通配符来隐藏全部的微服务名称
    • 在zuul的配置中, prefix指定了前缀, 一旦设定了前缀, 必须加上前缀才能访问

    3. 配置主启动类

    package com.wang.springcloud;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
    
    @SpringBootApplication
    //开启Zuul
    @EnableZuulProxy
    public class ZuulApplication_9527 {
        public static void main(String[] args) {
            SpringApplication.run(ZuulApplication_9527.class, args);
        }
    }
    

    在启动类上加上 @EnableZuulProxy 注解即可使Zuul生效

    3. 测试

    为了使得访问更加真实, 我们在hosts中将localhost配置为了www.wangStudy.com

    发现, 访问 http://www.wangstudy.com:9527/wang/mydept/dept/list 可以得到预期的结果

    image-20201013101301770

    而访问不带前缀或者直接访问微服务的名称, 则会报告404错误

    image-20201013101359795

  • 相关阅读:
    关于回调函数的初探
    细节决定成败
    数据的导航与跳转
    如何在同一页面显示父子表的内容
    从Request到Response之间的所有事件发生的顺序
    如何更改网站的一些公共数据
    如何实现计数器
    DataTable.Select方法
    登出代码
    如何构建自定义控件
  • 原文地址:https://www.cnblogs.com/wang-sky/p/13807228.html
Copyright © 2020-2023  润新知