zoukankan      html  css  js  c++  java
  • 7、Zull路由网关

    Zull路由网关

    概述

    什么是zuul?

    ​ Zull包含了对请求的路由(用来跳转的)和过滤两个最主要功能:

    ​ 其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验,服务聚合等功能的基础。Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他服务的消息,也即以后的访问微服务都是通过Zuul跳转后获得。

    在这里插入图片描述

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

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

    Zuul 能干嘛?

    • 路由
    • 过滤

    官方文档:https://github.com/Netflix/zuul/

    案例:

    1、修改host文件

    为了跟真实的环境相似,我们可以修改本机的host的文件来操作

     

     2、新建springcloud-zuul模块,并导入依赖

    <dependencies>
            <!--导入zuul依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-zuul</artifactId>
                <version>1.4.6.RELEASE</version>
            </dependency>
            <!--Hystrix依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-hystrix</artifactId>
                <version>1.4.6.RELEASE</version>
            </dependency>
            <!--dashboard依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
                <version>1.4.6.RELEASE</version>
            </dependency>
            <!--Ribbon-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-ribbon</artifactId>
                <version>1.4.6.RELEASE</version>
            </dependency>
            <!--Eureka-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-eureka</artifactId>
                <version>1.4.6.RELEASE</version>
            </dependency>
            <!--我们需要拿到实体类,所以要配置api moudle-->
            <dependency>
                <groupId>com.zhixi</groupId>
                <artifactId>springcloud-01-api</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!--热部署-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
            </dependency>
        </dependencies>
    View Code

    3、编写配置:application.yaml

    server:
      port: 9527
    
    spring:
      application:
        name: springcloud-zuul #微服务名称
    
    # eureka 注册中心配置
    eureka:
      client:
        service-url:
          defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
      instance: #实例的id
        instance-id: zuul9527.com
        prefer-ip-address: true # 显示ip
    
    info:
      app.name: haust.springcloud # 项目名称
      company.name: bilibiliSchool # 公司名称

    4、主启动文件

    @SpringBootApplication
    @EnableZuulProxy // 开启Zuul
    public class ZuulApplication_9527 {
    
        public static void main(String[] args) {
            SpringApplication.run(ZuulApplication_9527.class, args);
        }
    }

    5、测试访问

    开启注册中心:springcloud-eureka-server-7001

    开启服务提供:springcloud-provider-dept-8001

    开启zuul:springcloud-zuul-9527

    访问:http://www.zhixi.com:9527/springcloud-provider-dept/dept/query/all

    如果我们想要隐藏服务名称,或者自己定义就需要在:application.yaml中进行配置:

    # zull 路由网关配置
    zuul:
    
      # 原来访问路由         :http://www.zhixi.com:9527/springcloud-provider-dept/dept/query/all
      # zull路由配置后访问路由:http://www.zhixi.com:9527/demo/mydept/dept/query/all
    
      routes:
        mydept.serviceId: springcloud-provider-dept # eureka注册中心的服务提供方路由名称
        mydept.path: /mydept/** # 将eureka注册中心的服务提供方路由名称 改为自定义路由名称
      # 不能再使用这个路径访问了,*: 忽略,隐藏全部的服务名称~
      ignored-services: "*"
      # 设置公共的前缀
      prefix: /demo

    我们再来测试访问:可以看到成功按照我们指定配置进行访问!

  • 相关阅读:
    wepy ——$apply
    sql常用内置函数
    创建数据表
    wepy —— 组件之间通信
    sql表连接 —— join
    mongo int类型 数据 变成float
    修改Windows 2003的邮件服务器的最大附件限制
    让google.COM不再自动跳转到.CN
    [转载]浮点数在计算机中存储方式
    [转载]内存分配 知识,全局,局部,静态变量
  • 原文地址:https://www.cnblogs.com/zhangzhixi/p/14387124.html
Copyright © 2011-2022 走看看