02微服务设计

API Gateway

在进行了SOA服务化架构演进后,将局势架构按照功能进行了垂直拆分,直接对外暴露一批微服务接口,但是却因为缺乏统一的出口面临一些困难:

  • 客户端到微服务直接进行通信,导致强耦合出现—导致随着时间的推移,历史的API需要保留,需要维护历史的API接口
  • 一个功能/页面需要多次请求,客户端聚合数据,工作量变得巨大、延迟变高。
  • 多服务可能由多部门进行提供,部门之间的接口规范存在差异、协议不利于统一,需要端来兼容。
  • 若每一个微服务都直接对外,意味着每一个微服务都需要考虑面向不同的移动端、web端来做API的适配和兼容(apid、安卓版…)。
  • 多终端(各个版本的API)兼容逻辑复杂,每个服务都需要处理。
  • 统一的逻辑无法进行收敛,例如安全认证、限流。只有对外暴露的"表面积"越少,安全性就越收敛。

因此可以在微服务与内网的SLB之间增加一个app-interface(BFF,Backend for Frontend)用于统一的协议出口,在服务内进行大量的dataset join(区别于以前面向资源的接口,面向用户场景的高效研发,有很多种数据源做返回,最终面向用户场景面向usecase),按照业务场景设计粗粒度的API,给后续服务演进带来更多的优势:

  • 轻量级的交互:协议精简、聚合。在面向不同的终端面向不同的网络环境,可能需要做一些协议的裁剪,可以节省流量。
  • 差异服务:针对不同的终端要进行定制化的API,进行数据的裁剪和聚合,例如针对电视机、移动端接口是不同的,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值