单体架构:一个归档包包含了应用所有功能的应用程序,我们称之为单体应用。架构单体应用的架构风格,就是单体架构。
单体架构的缺点:
1.复杂性逐渐变高
2.技术债务逐渐上升
3.部署速度逐渐变慢
4.阻碍技术创新
5.无法按需伸缩
微服务:开发一组小型服务的方式来开发一个独立的应用系统。其中每一个小型的服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务我们仅做最低限度的集中管理。
微服务的特点:
1.易于开发和维护
2.单个微服务启动较快
3.局部修改容易部署
4.技术栈不受限制
5. 按需伸缩,即根据相应模块的需求提升相应的配置
6.全自动的部署机制
微服务相应的缺点:
1.运维要求较高
2.分布式固有的复杂性
3.接口调整成本高
4.重复劳动
微服务设计原则:
1.单一职责原则
2.服务自治原则
3.轻量级通信原则
4.接口明确原则
微服务相关框架:
1.Spring Cloud
2.Dubbo
3.Dropwizard
4.Consl、etcd &etc.