月度归档:2021年05月

架构师图谱·微服务&消息队列篇

1. 概述

“架构师图谱”是一个很宏大的命题,特别是优秀的架构师自身也是“由点到面再到图”,一点点成长积累起来,尝试写这系列文章的目的更多的是结合自身的一些经验和理解,来解读工程师和架构师所应具备的技能模型,这里会更偏向于后端技能,依赖于开源技术、云原生或者其他第三方服务。重点介绍一些技术栈、设计理念和适应场景,这些可以作为我们选型时的依据。所谓“架构即决策”,是在一个有约束的盒子中寻求最优解。这个有约束的盒子是团队经验、成本、资源、进度、业务所处阶段等编织、掺杂在一起的综合体。本质上无优劣,但是存在恰当的架构用在合适的软件系统中,而这些就是决策的结果。

1.1 序章

一个技术图谱:

计划会分三个篇章来介绍:

  1. 微服务&消息队列篇:重点聚焦在微服务和常用的消息队列,包括相关的选型以及一些理论基础
  2. 数据库&分布式篇:主要集中在数据库、分布式(一致性/锁/缓存/发号/任务调度等)
  3. 尾篇:分享一些流媒体、Devops、项目管理、团队建设方向的一些经验

完整的思维导图:

2. 微服务

谈到微服务,通常会和SOA、微内核等架构进行比较,不过SOA粗粒度服务、庞大的ESB,在互联网更注重敏捷交付的场景,落地较少。微内核架构和微服务架构没有本质上的区别,但是更多的面向插件化场景,在一些类似营销、风控、工作流、管线等场景,对应的微服务可以采用微内核架构。

微服务(英语:Microservices)是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building

阅读全文