API Gateway
我们进行了SOA服务化的架构演进,按照垂直功能进行了拆分,对外暴露了
一批微服务,但是因为缺乏统一的出口面临了不少困难:
客户端到微服务直接通信,强耦合。
需要多次请求,客户端聚合数据,工作量巨大,延迟高
协议不利于统一,各个部门间有差异,需要端来兼容
面向 端 的API适配,耦合到了内部服务,
多终端兼容逻辑复杂,每个服务都需要处理
我们新增一个app-interface 用于统一的协议出口,在服务内进行大量的
dataset join,按照业务场景来设计粗粒度的API,给后续服务的演进带来的很多优势:
轻量交互:协议精简、聚合。
差异服务:数据裁剪以及聚合、针对终端定制化API
动态升级:原有系统兼容升级,更新服务而非协议。
沟通效率提升,协作模式眼睛为移动业务+网关小组
gRPC的定义概括为:
A high-performance,open-source universal PRC framework
多语言:语言中立,支持多种语言
轻量级,高性能:序列化支持PB(Protocol Buffer) 和JSON ,PB 是一种语言
无关的高性能序列化框架。
可插拔
IDL:基于文件定义服务,通过proto3工具生成指定语言的数据结构,服务端
接口以及客户端Stub.
gRPC
服务而非对象、消息而非引用:促进微服务的系统间粗粒度消息交互设计理念。
负载无关的:不同的服务需要使用不同的消息类型和编码,,例如
protocol buffers JSON XML 和 Thrift.
流: Streaming API.
阻塞式和非阻塞式:支持异步和同步处理在客户端和服务端交互的消息序列。
元数据交换:常见的横切关注点,如认证或跟踪,依赖数据交换。
标准化状态码:客户端通常以有限的方式响应API调用返回的错误。
8821

被折叠的 条评论
为什么被折叠?



