这是我参与「第五届青训营」伴学笔记创作活动的第 15 天
架构的简单介绍
架构的定义
架构又称为软件架构,指的是有关软件整体结构和组件的抽象描述,用于指导软件系统各个方面的设计,软件的架构就相当于一栋房子的地基,好的地基会让一栋房子变得很稳定坚固以及会变得美观。所以说好的架构会使上层代码变得稳定美观让上层代码编写者更加轻松的去实现他的设计而不用过多的去关注底层。
单体架构
单体架构是指将单机架构即所有的东西都在一个进程里面部署在一个机器里面的架构部署到多个机器,这样做可以解决单机架构机器处理能力不够的问题,具备水平扩展的能力。但是问题也很严重,服务都在一个程序里面会使代码的耦合性过高导致维护时会使得非常麻烦,并且如果一个接口出问题会影响到其他的接口,导致整个进程的崩溃。
垂直应用架构
垂直应用架构就是将进程按照不同的功能分开,然后每一部分都是一个单机架构,这样会使程序的耦合度下降,但是本质和单体架构类似虽然说解决了一些问题但是根源上的问题还是没有能够解决
SOA架构
SOA架构中,服务为一等公民,将进程按照不同的功能进行抽象成一个单独的服务,每一个服务与服务之间都可以通过类似rpc的方式进行通讯,服务和服务之间是互不影响的并且可以单独的运行,这样可以使得一个进程能够按照不同的功能划分并且他的耦合度也大大降低了
微服务
微服务是SOA架构的一种衍生,在SOA的基础上微服务将服务进行进一步的细分使得服务能够更加灵活的进行组合使用,并且耦合度也进一步的降低。