• Zuul网关


    Zuul是spring cloud中的微服务网关。

    网关: 是一个网络整体系统中的前置门户入口。请求首先通过网关,进行路径的路由,定位到具体的服务节点上。

    Zuul是一个微服务网关,首先是一个微服务。也是会在Eureka注册中心中进行服务的注册和发现。也是一个网关,请求应该通过Zuul来进行路由。

    Zuul网关不是必要的。是推荐使用的。

    使用Zuul,一般在微服务数量较多(多于10个)的时候推荐使用,对服务的管理有严格要求的时候推荐使用,当微服务权限要求严格的时候推荐使用。

    一、zuul网关的作用

     

    二、zuul网关的应用

    通过zuul访问服务的,URL地址默认格式为:

    http://zuulHostIp:port/要访问的服务名称/服务中的URL

    服务名称就是properties配置文件中的spring.application.name。

    服务的URL,就是对应的服务对外提供的URL路径监听。

    2.1 URL路径匹配

    # URL pattern
    # 使用路径方式匹配路由规则。
    # 参数key结构: zuul.routes.customName.path=xxx
    # 用于配置路径匹配规则。
    # 其中customName自定义。通常使用要调用的服务名称,方便后期管理
    # 可使用的通配符有: *   **   ?
    # ? 单个字符
    # * 任意多个字符,不包含多级路径
    # ** 任意多个字符,包含多级路径
    zuul.routes.eureka-application-service.path=/api/**
    # 参数key结构: zuul.routes.customName.url=xxx
    # 用于配置符合path的请求路径路由到的服务地址。
    zuul.routes.eureka-application-service.url=http://127.0.0.1:8080/

    2.2 服务名称匹配

    # service id pattern 通过服务名称路由
    # key结构 : zuul.routes.customName.path=xxx
    # 路径匹配规则
    zuul.routes.eureka-application-service.path=/api/**
    # key结构 : zuul.routes.customName.serviceId=xxx
    # 用于配置符合path的请求路径路由到的服务名称。
    zuul.routes.eureka-application-service.serviceId=eureka-application-service
    
    # simple service id pattern 简化配置方案
    # 如果只配置path,不配置serviceId。则customName相当于服务名称。
    # 符合path的请求路径直接路由到customName对应的服务上。
    zuul.routes.eureka-application-service.path=/api/**

    2.3 路由排除配置

    # ignored service id pattern
    # 配置不被zuul管理的服务列表。多个服务名称使用逗号','分隔。
    # 配置的服务将不被zuul代理。
    zuul.ignored-services=eureka-application-service
    
    # 通配方式配置排除列表。
    zuul.ignored-services=*
    # 使用服务名称匹配规则配置路由列表,相当于只对已配置的服务提供网关代理。
    zuul.routes.eureka-application-service.path=/api/**
    
    # 通配方式配置排除网关代理路径。所有符合ignored-patterns的请求路径都不被zuul网关代理。
    zuul.ignored-patterns=/**/test/**
    zuul.routes.eureka-application-service.path=/api/**

    2.4 路由前置配置

    # prefix URL pattern 前缀路由匹配
    # 配置请求路径前缀,所有基于此前缀的请求都由zuul网关提供代理。
    zuul.prefix=/api
    # 使用服务名称匹配方式配置请求路径规则。
    # 这里的配置将为:http://ip:port/api/appservice/**的请求提供zuul网关代理。
    # 并将请求路由到服务eureka-application-service中。
    zuul.routes.eureka-application-service.path=/appservice/**

    2.5 zuul网关配置总结

    网关配置方式有多种,默认、URL、服务名称、排除|忽略、前缀。

    网关配置没有优劣好坏,应该在不同的情况下选择合适的配置方案。

    zuul网关其底层使用ribbon来实现请求的路由,并内置Hystrix,可选择性提供网关fallback逻辑。使用zuul的时候,并不推荐使用Feign作为application client端的开发实现。毕竟Feign技术是对ribbon的再封装,使用Feign本身会提高通讯消耗,降低通讯效率,只在服务相互调用的时候使用Feign来简化代码开发就够了。而且商业开发中,使用Ribbon+RestTemplate来开发的比例更高。

    三、zuul网关过滤器

    四、zuul网关的容错(与Hystrix的无缝结合)

    五、zuul网关的限流保护

    六、zuul网关性能调优:网关的两层超时调优

  • 相关阅读:
    C#执行异步操作的几种方式
    spring boot swagger ui使用 nginx 部署后无法使用问题
    PHP支付宝接口RSA验证
    认证加密算法php hash_hmac和java hmacSha1的问题
    如何实现从 Redis 中订阅消息转发到 WebSocket 客户端
    ffmpeg安装
    nginx静态资源反向代理
    Redis基础知识 之——发布/订阅
    linux下安装git
    php实现无限级分类查询(递归、非递归)
  • 原文地址:https://www.cnblogs.com/yucongblog/p/11545841.html
Copyright © 2020-2023  润新知