分布式系统(常见架构) | 青训营笔记

141 阅读3分钟

前言

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

以下是最近看分布式架构摘录的一些要点,书籍《从零开始学架构》

分层架构

  • 分层架构是很常见的架构模式,也叫N层架构,通常情况下,N至少是2层,一般不
  • 超过5层。
  • C/S架构、B/S架构划分的对象是整个业务系统,划分的维度是用户交互。
  • MVC架构、MVP架构划分的对象是单个业务子系统,划分的维度是职责,将不同的职责任划分到独立层。
  • 逻辑分层架构划分的对象可以是单个业务子系统,也可以是整个业务系统,划分的维度也是职责。
  • 无论采取何种分层维度,分层架构设计最核心的一点就是需要保证各层之间的差异足够清晰,边界足够明显。
  • 分层架构之所以能够较好地支撑系统扩展,本质在于:隔离关注点。
  • 分层结构的一个特点就是层层传递。分层架构一个典型的缺点就是性能。

SOA架构(Service-Oriented Architecture)

  • SOA提出的背景是企业内部的IT系统重复建设且效率低下。
  • SOA更多是在传统企业(例如,制造业、金融业等)落地和推广,在互联网行业并没有大规模的实践和推广。
  • SOA三个关键概念:服务、ESB和松耦合。
  • SOA架构中,每项业务功能都是一项服务,服务就意味着要对外提供开放的能力。
  • SOA使用ESB来屏蔽异构系统对外提供各种不同的接口方式,以此来达到服务间高效的互联互通。
  • SOA解决了传统IT系统重复建设和扩展效率低的问题,但其本身也引入了更多的复杂性,SOA最广为人诟病的就是ESB.
  • SOA的ESB设计也是无奈之举,企业在应用SOA时,各种异构的IT系统都已经存在很多年了,完全重写或按照统一标准进行改造的成本是非常大的,只能通过ESB方式去适配已经存在的各种异构系统。

微服务

  • 微服务概念的历史要早得多,也不是Martin Flower创造出来的,Martin只是将微服务进行了系统的阐述。
  • 微服务是一种和SOA相似但本质上不同的架构理念。
  • 微服务的三个关键词:small、lightweight、.automated.
  • 微服务和SOA不存在孰优孰劣,只是应用场景不同。
  • 微服务并不是没有代价,而是会带来系统复杂度、运维复杂度、性能下降等问题。微服务拆分的粒度遵循“三个火枪手”原则。
  • 真正决定微服务成败的,恰恰是那个被大部分人都忽略的“automated”,而不是“small”和“lightweight'”。
  • 微服务并不是很多人认为的那样又简单又轻量级,要做好微服务,基础设施是必不可少的。

微内核

  • 微内核架构也被称为插件化架构(Plug-in Architecture),是一种面向功能进行拆分的可扩展性架构。
  • 微内核架构通常用于实现基于产品的应用。
  • 微内核架构包含两类组件:核心系统(core system)和插件模块(plug-in modules)..
  • 微内核的核心系统设计的关键技术有几部分:插件管理、插件连接和插件通信。
  • Eclipse采用OSGi标准后,OSGi更是成为首选的插件化标准。