• 服务网关(Zuul)


    1.技术背景

    前面我们通过Ribbon或Feign实现了微服务之间的调用和负载均衡, 那我们的各种微服务又要如何提供给外部应用调用呢?
    因为是REST API接口, 所以外部客户端直接调用各个微服务是没有问题的, 但是出于种种原因,这并不是一个好的选择。
    让客户端直接与各个微服务通信,会有以下几个问题:
    ●客户端会多次请求不同的微服务,增加客户端的复杂性.
    ●存在跨域请求,在一定场景下处理会变得相对比较复杂.
    ●实现认证复杂,每个微服务都需要独立认证,
    ●难以重构,项目迭代可能导致微服务重新划分.如果客户端直接与微服务通信,那么重构将会很难实施。
    ●如果某些微服务使用了防火墙/浏览器不友好的协议,直接访问会有一定困难。
    ●面对类似上面的问题,我们要如何解决呢?答案就是:服务网关!
    使用服务网关具有以下几个优点:
    ●易于监控,可在微服务网关收集监控数据并将其推送到外部系统进行分析.
    ●易于认证.可在服务网关上进行认证,然后转发请求到微服务,无须在每个微服务中进行认证。
    ●客户端只跟服务网关打交道,减少了客户端与各个微服务之间的交互次数.
    ●多渠道支持, 可以根据不同客户端(Web端、移动端、桌面端等) 提供不同的API服务网关.

    2.Spring Cloud Zuul

    服务网关是微服务架构中一个不可或缺的部分。在通过服务网关统一向外系统提供RESTAPI的过程中, 除了具备服务路由、均衡负载功能之外, 它还具备了权限控制等功能。Spring Cloud Netflix中的Zuul就担任了这样的一个角色, 为微服务架构提供了前门保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性。
    在Spring Cloud体系中,Spring Cloud Zuul封装了Zuul组件, 作为一个API网关, 负责提供负载均衡、反向代理和权限认证。

  • 相关阅读:
    AndroidStudio build.gradle 报错
    点九图片的显示内容区域应作何理解
    【Android Studio快捷键】之导入相应包声明(import packages)
    ListView之EmptyView
    Activity 设置切换动画
    android 中 系统日期时间的获取
    解决Activity启动黑屏及设置android:windowIsTranslucent不兼容activity切换动画问题
    android选择图片或拍照图片上传到服务器(包括上传参数)
    Spring 4 官方文档学习(十)数据访问之OXM
    Spring 4 官方文档学习(十)数据访问之ORM
  • 原文地址:https://www.cnblogs.com/xc-xinxue/p/12543591.html
Copyright © 2020-2023  润新知