这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
- 系统架构演变
-
单体架构
最基础的架构,对计算机资源的利用率最高,但是一方面容易因为单模块故障导致整机崩溃,另外不容易协作开发。
-
垂直应用架构
根据业务划分模块,相互独立开发维护,早期分布式,缺点是不同业务使用的资源会存在多份导致冗余,另外考考虑单个业务还是一个单体架构。
-
分布式架构
将业务无关部分抽离为独立的服务模块,多个业务模块共享一组服务模块,避免了荣誉,但如果服务模块出现故障会影响多个业务。
-
SOA 架构(Service Oriented Architecture)
将业务拆解为多个服务,服务之间通过相互依赖最终提供一系列的功能,并且每个服务可以独立运行的一种设计思路。由此开始产生服务注册的设计,由一个服务注册中心对服务进行调度,供上层业务模块使用。
-
微服务架构
在 SOA 的基础上进一步强调功能的服务化,将包括业务模块在内都当作一个微服务,虽然提高了开发效率、故障隔离、易于拓展的优点,但是也产生了运维、安全性等分布式系统的问题。
- 微服务架构核心要素
-
服务治理
由于服务的种类数量很大,不可能通过硬编码的方式指定调用地址,由此很自然地产生了服务注册中心的需求:服务上线时,向中心注册自己的地址和服务名;调用服务时,向服务注册中心请求一个能够提供对应服务的地址进行调用。这样还可以由注册中心将不同的请求转发给不同的服务提供者,进行负载均衡;也能渐进地对服务进行升级或扩容等操作。
-
可观测性
主要体现在日志的采集分析和链路追踪,因为一个问题的产生可能是经由十几台设备的处理才出现,必须要有相关的追踪工具。