2016.8.19, 深圳, Ken Fang
架构师在设计微服务时, 需把握一个核心的设计原则:
微服务 “外部的世界” 远比 “内部的世界” 重要。
微服务外部与内部的世界是以微服务边界上下文 (Bounded Context) 作划分的。而微服务的接口; 例如: REST 接口; 便是拉通了微服务外部与内部的世界。
微服务外部的世界包括:
A. 微服务外部的 Client; 微服务外部的使用者 (介面), 系统, 设备。
B. 微服务之间外部的数据交易 (Transaction)。
C. 微服务之间外部的远程调用; 在网络上所传递的信息。
微服务内部的世界包括:
A. 微服务内部需处理、运算的业务场景或功能。
B. 微服务内部所需拥有的资源; 例如: 库 (Library), 数据库, 应用伺服器, 网络IP 地址, 网络 Port, 操作系统等等。
架构师设计微服务的粒度; 边界上下文 (Bounded Context); 时, 便需仅记微服务 “外部的世界” 远比 “内部的世界” 要来得重要。也就是说, 架构师应从微服务 “外部的世界” 来界定微服务的粒度; 微服务的边界上下文 (Bounded Context)。
架构师设计微服务的粒度; 边界上下文 (Bounded Context); 时的主要思考的面向便是:
A. 先从微服务外