Robust 第 011 期:GateWay(网关)让你的服务游刃有余

网关是我们经常提到的一个词,在各类服务中,网关服务也是独特的一类。那么,什么是网关?网关都起着什么样的作用?以及,我们怎么搭建自己的网关服务呢?本期 robust 就来聊一聊网关服务。

网易云音乐:点击播放

喜马拉雅:点击播放

企鹅FM:点击播放

求打赏🙇如果你觉得 Robust 这样一档技术类的谈话节目还不错,希望我继续做下去,不妨打赏支持。你可以扫描本文下方的二维码打赏,也可以加我微信后红包打赏。

  • 什么是GateWay?
    GateWay是用于控制服务的请求(如客户端发出的请求)与服务的响应(如向客户端发送数据)的调控系统。简单说,就是在原始架构基础上,在上游发送过来的请求,和已经存在的服务之间,加多一层控制层。
  • API GateWay 是最常见的 GateWay 服务。
    API 本身就是一种服务,我们不去管它背后的实现逻辑和架构,对于要使用 API 的人而言,这一个暴露的 API 就是我所需要的服务。在浏览器前端或手机客户端中调用 API 就是向该服务发出请求。API 向前端吐出对应的数据,就是服务的响应。
  • 为什么需要GateWay?
    我们来举一个典型的场景。在传统实现中,我们是如何根据不同的用户,返回不同的数据的?对于用户而言,他只能看到自己有权限的数据。我们一般是通过cookie鉴权,或者通过token鉴权的方式,然后在API服务端,鉴权之后,确认当前访问的是哪一个用户,然后再进行业务逻辑处理。 但是,在这个场景中,你会发现,鉴权和业务逻辑必须写在同一套代码里面。而且,业务逻辑严重依赖鉴权结果,造成深度耦合。能不能让开发者专注业务逻辑,不要去搞鉴权的东西呢?
    当然可以,这就是GateWay可以办到的事情。在 API 服务器外面再套一层,这一层实现鉴权,在真正向 API 请求数据时,已经完成了鉴权,API 后端代码拿到用户信息后,不用担心是否合法问题,直接取出数据进行处理后返回就可以了。这就是将鉴权交给网关层去做的典型场景。
    除了鉴权,网关层还可以实现流量分发,避免服务挂掉,可以对响应数据进行处理后再返回给前端。总之,一旦中间多了一层GateWay,在不影响原始业务代码逻辑的情况下,还能干很多事。如果这个 GateWay 设计和实现的灵活,那么在处理一些问题上,就会变得非常方便,一插一拔就可能给搞定了。
  • Serverless 中的 gateway:控制请求分发
  • 网址转发
  • 自己开发一个GateWay。
    • 实现网址转发
    • 实现鉴权功能
    •  提供编程能力
      • 网址转发
      • 修改请求和响应的
    • 提供可视化UI管理
  • 安利一下我自己写的 easy-gateway

2020-03-08 2138 ,

为价值买单,打赏一杯咖啡

本文价值21.38RMB