一、基于同步远程过程调用(RPI)模式的通信
1.1 REST
1.1.1 概念
REST是一种使用HTTP协议的进程间通信机制。
REST中的一个关键概念是资源,它通常表示单个业务对象,例如:客户/产品/业务对象的集合。
REST使用HTTP动词操作资源,使用URL引用这些资源,例如:GET请求返回资源的表示形式
1.1.2 gRPC
用于编写跨语言客户端和服务端的框架。
gRPC API由一个或多个服务和请求/响应消息定义组成。
gRPC使用Protocol Buffers(标记格式)作为消息格式。
1.1.3 使用断路器模式处理局部故障
断路器:远程过程调用的代理,在连续失败次数超过指定阈值后的一段时间内,这个代理会立刻拒绝其他调用。
解决思路:
1、必须让远程过程调用代理有正确处理无响应服务的能力。(响应次数)
2、需要决定如何从失败的远程服务中恢复。
1.1.4 服务发现机制
概念:关键组件是服务注册表,是包含服务实例网络位置信息的一个数据库。
实现服务发现的两种主要方式:
1、服务及其客户直接与服务注册表交互;
自注册模式和客户端发现模式的组合。
自注册:服务实例向服务注册表注册自己;
客户端发现:客户端从服务注册表检索可用服务实例的列表,并在它们之间进行负载均衡。
2、通过部署基础设施来处理服务发现(建议使用,没有语言或框架的限制)
第三方注册(注册服务器)模式和服务端发现模式
第三方注册:服务实例由第三方自动注册到服务注册表;
客户端发现模式:客户端向路由器发出请求,路由器负责服务发现。
笔记来自:《微服务架构设计模式》一书,作者 [美] 克里斯·理查森 著,喻勇译 第三章