温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

微服务API网关框架课程

发布时间:2020-07-25 12:47:34 来源:网络 阅读:220 作者:qq5d5a5a39ddd7c 栏目:编程语言

课程下载链接:https://pan.baidu.com/s/1ql1J4IvGJ1wTBOa2EKtFgg 提取码: b65w

老顾这系列课程就给大家介绍一下nignx + lua方式的网关框架,也是很多公司常用的网关框架

最近 微服务架构在项目中的应用越来越多,我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest Api 风格的接口来被 H5, Android, IOS 以及第三方应用程序调用。

    但是在UI上进行展示的时候,我们通常需要在一个界面上展示很多数据,这些数据可能来自于不同的微服务中,举个例子。

    在一个电商系统中,查看一个商品详情页,这个商品详情页包含商品的标题,价格,库存,评论等,这些数据对于后端来说可能是位于不同的微服务系统之中,可能我后台的系统是这样来拆分我的服务的:
    1、产品服务 - 负责提供商品的标题,描述,规格等。
    2、价格服务 - 负责对产品进行定价,价格策略计算,促销价等。
    3、库存服务 - 负责产品库存。
    4、评价服务 - 负责用户对商品的评论,回复等。
    现在,商品详情页需要从这些微服务中拉取相应的信息,问题来了?

    问题

    由于我们使用的服务系统架构,所以没办法像传统单体应用一样依靠数据库的 join 查询来得到最终结果,那么如何才能访问各个服务呢?
    按照微服务设计的指导原则,我们的微服务可能存在下面的问题:
    服务使用了多种协议,因为不同的协议有不同的应场景用,比如可能同时使用 HTTP, AMQP, gRPC 等。
    服务的划分可能随着时间而变化。
    服务的实例或者Host+端口可能会动态的变化。
    那么,对于前端的UI需求也可能会有以下几种:
    粗粒度的API,而微服务通常提供的细粒度的API,对于UI来说如果要调用细粒度的api可能需要调用很多次,这是个不小的问题。
    不同的客户端设备可能需要不同的数据。Web,H5,APP
    不同设备的网络性能,对于多个api来说,这个访问需要转移的服务端会快得多
    以上,就是我们构建微服务的过程中可能会遇到的问题。那么如何解决呢?
    这种情况下, API 网关(API Gataway)诞生了。

    API 网关

   API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。
    API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI