微服务 | 青训营笔记

31 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天

  1. 系统架构演变
  • 单体架构

    最基础的架构,对计算机资源的利用率最高,但是一方面容易因为单模块故障导致整机崩溃,另外不容易协作开发。

  • 垂直应用架构

    根据业务划分模块,相互独立开发维护,早期分布式,缺点是不同业务使用的资源会存在多份导致冗余,另外考考虑单个业务还是一个单体架构。

  • 分布式架构

    将业务无关部分抽离为独立的服务模块,多个业务模块共享一组服务模块,避免了荣誉,但如果服务模块出现故障会影响多个业务。

  • SOA 架构(Service Oriented Architecture)

    将业务拆解为多个服务,服务之间通过相互依赖最终提供一系列的功能,并且每个服务可以独立运行的一种设计思路。由此开始产生服务注册的设计,由一个服务注册中心对服务进行调度,供上层业务模块使用。

  • 微服务架构

    在 SOA 的基础上进一步强调功能的服务化,将包括业务模块在内都当作一个微服务,虽然提高了开发效率、故障隔离、易于拓展的优点,但是也产生了运维、安全性等分布式系统的问题。

  1. 微服务架构核心要素
  • 服务治理

    由于服务的种类数量很大,不可能通过硬编码的方式指定调用地址,由此很自然地产生了服务注册中心的需求:服务上线时,向中心注册自己的地址和服务名;调用服务时,向服务注册中心请求一个能够提供对应服务的地址进行调用。这样还可以由注册中心将不同的请求转发给不同的服务提供者,进行负载均衡;也能渐进地对服务进行升级或扩容等操作。

  • 可观测性

    主要体现在日志的采集分析和链路追踪,因为一个问题的产生可能是经由十几台设备的处理才出现,必须要有相关的追踪工具。