• SpringCloud: zuul路由网关,gateway


    前言:

      在微服务架构中的两大核心就是注册中心和路由网关,此篇介绍的就是springclloud netfix中负责路由网关的组件,zuul

    一,什么是zuul

      zuul包含了对请求的路由和过滤两个主要功能

      其中路由和功能负责外部请求转发到具体服务实例上,是实现外部统一入口的基础,而过滤功能负责对请求的处理过程进行干预,实现请求校验,服务聚合等功能的基础;

      zuul对Eureka进行整合,将zuul自身注册为eureka服务治理下的应用,同时从eureka获得其他服务的信息,就是说消费者获取服务是要先通过zuul跳转获得

    总结:

      zuul将eureka管理的微服务又封装了一层,所有消费者要获取服务都要通过zuul去转发,因此客户端是得不到真实的服务地址的,客户端访问的是指定服务zuul地址,提高了系统的安全性

      通俗的说Zuul属于服务提供者,只不过提供的是路由网关的服务

    二,配置zuul

    新建一个服务用来实现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>
    
            <!--实体类+web-->
            <dependency>
                <groupId>com.king</groupId>
                <artifactId>springcloud-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

    yaml配置

    server:
      port: 9527
    
    #微服务id
    spring:
      application:
        name: spring-zuul
    
    eureka:
      client:
        service-url:
          defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
    #实例id
      instance:
        instance-id: zuul9527.com
        #显示ip
        prefer-ip-address: true
    
    #zuul
    zuul:
      routes:
        mydept.serviceId: springcloud-provider-dept
        mydept.path: /mydept/**
      ignored-services: "*"  #不能在使用这个路径访问了,ignored:忽略,隐藏全部的真实项目地址
    #  prefix: 设置统一的前缀
    
    
    info:
      app.name: springCloud-zuul-gateway
      company.name: king
    View Code

    主启动类配置,@EnableZuulProxy //开启网关代理

    @SpringBootApplication
    @EnableZuulProxy   //开启网关代理
    public class ZuulApplication_9527 {
    
        public static void main(String[] args) {
            SpringApplication.run(ZuulApplication_9527.class,args);
        }
    }
    View Code

    总环:zuul可以简单理解为在众多微服务外面又包裹了一层,同时屏蔽内部细节,封装的思想

  • 相关阅读:
    Support for the experimental syntax 'classProperties' isn't currently enabled
    CssSyntaxError (2:1) Unknown word 1 | > 2 | var content = require("!!./index.css");
    vue-transition实现加入购物车效果及其他动画效果实现
    Array.reduce()方法
    Object.keys()返回对象自身可枚举属性组成的数组
    vue + mixin混入对象使用
    el-table + el-form实现可编辑表格字段验证
    深圳面试题
    深圳两年面试题
    JVM中的STW和CMS
  • 原文地址:https://www.cnblogs.com/CL-King/p/14349188.html
Copyright © 2020-2023  润新知