高可用可伸缩微服务架构
微服务架构概述
一、什么是架构
自软件工程产生以来,架构设计和过程管理一直是软件领域 DNA 的双螺旋。
软件架构是一个用于指导系统实现的草图。
二、几个相关概念
1、模式
模式描述了在特定上下文环境里不断重复发生的某一类问题的解决方案。(模式是对于普遍问题的普通解决方案。)
模式可以分为架构模式(Architectural Pattern)、设计模式(Design Pattern)和实现模式(Implementation Pattern)三个层次。
2、框架(Framework)
框架是一套通用的解决方案。架构是高度抽象的需求,是系统中的不变量。
架构是理论,框架是实现。
3、模块(Module)
模块是系统在较大粒度伤的解耦切分。
4、组件(Component)
组件是一组可以服用的业务功能的集合,粒度小于模块。
5、服务(Service)
服务是一组对外提供业务业务处理能力的功能。
三、架构的形式与特点
架构服务于业务。
架构影响研发团队的组织形式。
四、架构的目标与方法
对于复杂问题的简化处理,一个简单的办法就是分而治之。
高内聚是指模块内的功能和逻辑是紧密联系在一起的,低耦合是指模块质检的关联性非常小。
按照高内聚的指导思想把一些紧密联系的功能聚合后,打包成一个可以整体复用的部分,这就是组件,这个过程就是组件化。
4+1视图模型
从场景视图的功能需求、逻辑视图的对象与交互、进程视图的进程与通信、开发视图的项目开发组织结构、物理视图的网络与机器部署结构这五个方面来描述一个系统的架构设计。
五、架构的不同风格
单体架构:整个系统的所有功能单元整体部署到一个进程。
分布式架构:整个系统的功能单元分散到不同的进程。
面向服务架构 SOA:以业务服务的角度和服务总线的方式。
分布式服务架构 DSA:基于去中心化的分布式服务框架与技术。
微服务架构 MSA:微服务架构可以看作是面向服务架构和分布式架构的扩展。
1、单体架构
- 系统存在代码严重耦合的问题
- 系统变更对系统部署影响大
- 系统影响开发效率
2、分布式架构:面向服务架构(SOA)
通过将业务系统服务化,可以将不同模块解耦。
This chapter requires login to view full content. You are viewing a preview.
Login to View Full Content