zuul-server

zuul 基本使用

  • zuul(网关可以做什么)
    • 分发服务
    • 身份认证
    • 过滤请求
    • 监控
    • 路由
    • 限流
  • 过滤器的执行顺序,节省计算的资源
  • 网关接口容错
    • 创建一个对象实现 FallbackProvider
  • 生产中小技巧
    • db中存储:过滤器开关
      • 配合 spring-boot-starter-actuator 更清爽

项目中遇到的问题

  • 使用zuul cookie 和token 不能向后传递的问题

    • 通过在yml里面配置下 ,把敏感信息制成空

      zuul:
      #    以下配置,表示忽略下面的值向微服务传播,以下配置为空表示:所有请求头都透传到后面微服务。
      #  sensitive-headers:
        routes:
          # 此处名字随便取
          custom-zuul-name:
            path: /zuul-custom-name/**
            service-id: service-sms
      
  • 老项目改造中路由问题

    • 方式一 yml配置
    RibbonXXXFilter 路由到其他服务
    SimpleHostRoultFilter 路由到其他url
    SendForewordFilter 路由到自己的路径
    zuul:
      routes:
        xxx:
          path: /forword1/**
          url: forward:/myController
      
      
    #    # 配合 风雨冷人
    #    xxxx: /zuul-api-driver/**
    ##     此处名字随便取
    #    custom-zuul-name:
    #      path: /zuul-api-driver/**
    #      url: http://localhost:8003/
    
    • 方式二,使用zuul的Filter

      1.过滤器 route
      2.获取请求过来的url(请求)
      3.url(请求) = url(目的地)映射
      4.设置RequestContext中的 serviceid url
      ====
      开发之前,想清楚步骤
      技术和业务做选择和取舍。(100种方法,你去其中一种,出问题自己扛)
      
  • 动态路由(根据不同的用户路由到不同的服务)

    • 路由到服务
    • 路由到具体地址
  • 微服务404的原因

    • url是从哪里拿到的
      • 从eureka中拿到
      • 从配置文件中拿到