微服务API网关框架

微服务API网关框架
共58节 1001人在学 课程详情
  • 漫谈网关
  • 网关技术选型
  • nginx下载安装
  • 正向代理与反向代理
  • nginx命令与信号控制
  • nginx平滑升级
  • nginx配置文件说明
  • nginx配置连接数
  • nginx虚拟主机
  • nginx日志以及切割
  • nginx的location详解
  • nginx的负载均衡
  • nginx的echo模块安装
  • openresty背景介绍
  • openresty安装
  • openresty的helloworld
  • lua介绍以及helloworld
  • lua基本类型一
  • lua基本类型二
  • lua基本类型三
  • lua基本类型四
  • lua运算符
  • lua控制结构一
  • lua控制结构二
  • lua正则表达式
  • lua的string类型操作
  • lua的table操作
  • lua的变量
  • lua的时间操作
  • lua模块定义
  • lua的元表操作
  • lua的面向对象
  • openresty中调用lua脚本
  • openresty引入json模块
  • openresty引入redis模块
  • openresty对redis模块进行二次封装
  • openresty引入mysql模块
  • openresty引入capture请求
  • openresty引入http模块
  • openresty操作本地缓存
  • openresty执行流程
  • openresty执行详解之初始化阶段
  • openresty执行详解之重写赋值阶段
  • openresty执行详解之重写url阶段
  • openresty执行详解之访问阶段
  • openresty执行详解之内容阶段
  • openresty执行详解之响应阶段
  • openresty实现访问频率控制
  • openresty实现黑名单控制
  • openresty实现接口签名验证
  • openresty实现网关框架介绍
  • openresty实现网关主入口
  • openresty实现网关插件可配置
  • openresty实现网关插件加载
  • openresy实现网关之签名验证插件
  • openresy实现网关之黑名单插件
  • openresty实现网关之频率插件
  • 网关框架总结

    订阅失败

    微服务API网关框架
    微服务API网关框架 ...

    订阅列表已满,请先移出部分订阅内容。

    当前章节需购买后观看
    开通超级会员免费看!专家精选系列课程,满足你从入门到精通!更有问答月卡免费送,你的问题有问必答!
    提交答案

    购买课程

    扫码完成付费,可继续学习全部课程内容

    加载中...
    播放页问题反馈
    视频学习中有任何产品建议都可由此反
    馈,我们将及时处理!

    课时介绍

    nginx日志以及切割-微服务API网关框架

    课程介绍

    最近 微服务架构在项目中的应用越来越多,我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest Api 风格的接口来被 H5, Android, IOS 以及第三方应用程序调用。
    但是在UI上进行展示的时候,我们通常需要在一个界面上展示很多数据,这些数据可能来自于不同的微服务中,举个例子。
    在一个电商系统中,查看一个商品详情页,这个商品详情页包含商品的标题,价格,库存,评论等,这些数据对于后端来说可能是位于不同的微服务系统之中,可能我后台的系统是这样来拆分我的服务的:
    • 产品服务 - 负责提供商品的标题,描述,规格等。
    • 价格服务 - 负责对产品进行定价,价格策略计算,促销价等。
    • 库存服务 - 负责产品库存。
    • 评价服务 - 负责用户对商品的评论,回复等。
    现在,商品详情页需要从这些微服务中拉取相应的信息,问题来了?
    问题
    由于我们使用的服务系统架构,所以没办法像传统单体应用一样依靠数据库的 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注册和管理服务。

    API网关网关的价值:

    • 网关层对外部和内部进行了隔离,保障了后台服务的安全性。
    • 对外访问控制由网络层面转换成了运维层面,减少变更的流程和错误成本
    • 减少客户端与服务的耦合,服务可以独立发展。通过网关层来做映射。
    • 通过网关层聚合,减少外部访问的频次,提升访问效率。
    • 节约后端服务开发成本,减少上线风险。
    • 为服务熔断,灰度发布,线上测试提供简单方案。
    当然现在市面上的Api网关开源项目,有以下项目
    Tyk:Tyk是一个开放源码的API网关,它是快速、可扩展和现代的。Tyk提供了一个API管理平台,其中包括API网关、API分析、开发人员门户和API管理面板。Try 是一个基于Go实现的网关服务。
    Kong:Kong是一个可扩展的开放源码API Layer(也称为API网关或API中间件)。Kong 在任何RESTful API的前面运行,通过插件扩展,它提供了超越核心平台的额外功能和服务。
    Orange:和Kong类似也是基于OpenResty的一个API网关程序,是由国人开发的。
    Netflix zuul:Zuul是一种提供动态路由、监视、弹性、安全性等功能的边缘服务。Zuul是Netflix出品的一个基于JVM路由和服务端的负载均衡器。
    apiaxle: Nodejs 实现的一个 API 网关。
    api-umbrella: Ruby 实现的一个 API 网关。

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

    推荐课程

    信息系统项目管理师自考笔记

    李明 · 875人在学

    python从0到1:期货量化交易系统(CTP实战,高频及合成K线数据

    王先生 · 22663人在学

    手把手搭建Java超市管理系统【附源码】(毕设)

    汤小洋 · 4284人在学

    Java毕设springboot外卖点餐系统 毕业设计毕设源码 使用教

    黄菊华 · 826人在学

    基于SSM酒店管理系统(毕设)

    小尼老师 · 891人在学

    java项目实战之购物商城(java毕业设计)

    Long · 5195人在学

    手把手搭建Java求职招聘系统【附源码】(毕设)

    汤小洋 · 1526人在学

    Python Django 深度学习 小程序

    钟翔 · 2393人在学

    城管局门前三包管理系统+微信小程序(vue+springboot)

    赖国荣 · 668人在学

    Vue+Uni-app(uniapp)入门与实战+赠送仿美团点餐小程序

    李杰 · 4069人在学

    正在试验
    后自动删除环境
    课程实验
    本次实验时间已到期 00:00:00
    课件正在飞速打包中,请耐心等待几秒钟~