架构演变
项目架构随着时间的演进,出现了三个:单体架构,SOA,微服务。
单体架构:即我们日常学习接触到的最简单的,传统的一种架构方式,在中小型项目里出现居多。一个归档包里包含了整个项目所有功能的单体应用,通常称作单体应用,比如个人的小型博客,打成war包就可以直接上传到服务器里进行发布。
随着社会变化,各种应用的体量增大,单体架构逐渐不再适用。
单体架构的缺点:
什么是微服务?
把一个庞大的系统拆分为小的可以独立应用的服务,各个服务之间采用HTTP等轻量级的机制类相互通信。这些服务围绕业务功能进行构建,通过全自动部署进行独立部署。各个服务可以采用不同的语言编写,使用不同的数据存储技术。
微服务具备的特性
l1. 每个微服务可独立运行在自己的进程里;
l2. 一系列独立运行的微服务共同构建起了整个系统;
l3. 每个服务为独立的业务开发,一个微服务一般完成某个特定的功能,比如:订单管理、用户管理等;
l4. 微服务之间通过一些轻量的通信机制进行通信,例如通过REST API或者RPC的方式进行调用。
微服务优点
l1易于开发和维护
l2启动较快
l3局部修改容易部署
l4技术栈不受限
l5按需伸缩
l6DevOps
微服务带来的挑战
l运维要求较高
l分布式的复杂性
l接口调整成本高
l重复劳动
微服务设计原则
l单一职责原则
l服务自治原则
l轻量级通信原则
l接口明确原则