004 云原生之服务化架构
代码设计有对应的设计模式(Design Pattern),如观察者(Observer)模式、工厂(Factory)模式、单例(Singleton)模式等。云原生架构同样也有典型的设计模式,如服务化架构模式、Service Mesh 化架构模式、Serverless 架构模式、计算存储分离模式、分布式事务模式、可观测架构模式、事件驱动架构模式、网关架构模式、混沌工程模式、声明式设计模式。
服务化架构通常也称为面向服务的架构(SOA),即在通信双方(服务提供者和服务消费者)之间约定好服务规约,然后基于该规约发布和调用服务。
服务接口定义是指对应的编程语言对服务接口的描述。如 Apache Dubbo 是一款分布式 RPC(Remote Procedure Call,远程过程调用)通信系统,其服务规约定义就可以通过 Java 接口(Interface)来实现。
IDL 定义是指通过 IDL(Interface Definition Language,接口定义语言)对服务进行规约定义。如 Google gRPC、ApacheThrift 等,这些都属于 IDL 范畴。
OpenAPI 是基于 HTTP REST 通信的接口规范,我们可以先了解其详细的规范定义(参考地址为https://swagger.io/specification/)。
服务分组的目的主要是满足不同的地理空间和服务等级需求,例如在不同的数据中心,即便是相同的服务,也要通过不同的集群部署方式来区分。另外,考虑到服务等级要求,如针对给 VIP 客户提供更可靠的服务,也会涉及同样的服务在不同分组中的不同要求。
服务注册(Service Registry)中心,首先由服务提供者负责向服务注册中心提供服务的名称、分组、版本和元信息等,然后服务的消费者根据自己的需求(如指定的分组和版本等)查找并调用指定的服务。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/9c3d69661a5fa6dc63ba60db8】。文章转载请联系作者。
评论