内容纲要
核心功能
- 规定服务提供者如何发布服务
- 规定服务使用者如何引用服务
常见发布、应用方式
RESTFul API
- 原理
- 用作 HTTP 和 HTTPS 协议的接口定义
- 特点
- 简单(学习成本低)
- 使用场景
- 跨业务平台之间的服务协议
XML 配置
- 原理
- 在服务提供者和服务引用者之间维持一份对等的 XML 配置,用来保证引用者按约定来进行服务调用
- 特点
- 入侵性较高(服务提供者如果修改了接口定义,需要同时修改提供者和引用者的 XML 配置)
- 使用场景
- 高性能要求场景
- 一般私有 RPC 框架会使用这种方式(因为 RPC 性能好)
- 高性能要求场景
IDL 文件
- 原理
- 通过一种中立的方式来描述接口,使得在不同平台上的对象和不同语言编写的程序可以相互通信交流
- 特点
- 跨平台
- 跨语言
- 入侵性较高
- 使用场景
- 用作跨语言、平台程序之间的调用(Thrift、gRPC 等)
落地
XML 配置方式(发布、引用流程 )
- 服务提供者定义接口
- 定义接口
- 声明接口名、传递参数、返回值类型等
- *提供接口使用包(非必须,每个语言、框架可能不一样)
- 服务提供者发布接口
- 通过在服务发布配置文件中定义的接口来实现(具体见 XML 配置规则)
- 在服务发布者启动服务时加载 XML 配置文件,并暴露接口
- 服务消费者引用接口
- 通过在服务引用配置文件中定义要引用的接口(有接口包的需要导入接口包,看服务发布者有没有提供)
- 在服务引用者启动服务时加载 XML 配置来完成服务引用
避坑指南
- 服务发布预定义配置
- 把服务端发布的详细服务配置信息转移到引用端(减少注册、配置中心面对网络异常而导致的短时间内大量获取配置的压力)
- 服务引用预定义配置
- 由于发布配置以及转移到引用配置,引用配置可以引用发布配置的配置项(具体操作请看对应的文档)
- 服务配置升级(步骤)
- 没体验过,文章看的不是很明白,以后回来补上