一层架构
MVC
dubbo
单体架构:功能、业务集中在一个发布发包里,部署运行在同一个进程中
单体架构优势:
易于开发
易于测试
易于部署
易于水平伸缩
单体架构面临单独挑战
代码膨胀,维护成本增加
构建和部署成本大
可扩展性查:
新人上手难:代码量和复杂度大
创新性差:难于技术升级
什么时微服务?
使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程里,一般采用轻量级的通讯机制互联,并且他们可以通过自动化的方式部署。
多小才叫微服务呢?
代码量?开发时间?不可度量
微服务特征
单一职责
轻量级通信(平台无关、语言无关,如http),霏轻量级的如java的RMI,.net的remoting
隔离性
业务数据的独立性/有自己的数据
技术的多样性
微服务诞生的背景
互联网行业快速发展
敏捷开发,精益方法深入人心
容器技术的成熟
微服务架构图
微服务优势和不足
有点:
独立性:扩缩容,数据库独立
敏捷性
技术栈灵活:服务重构
高效团队:简单灵活
不足:
额外的工作:如何拆分
数据一致性:数据库独立导致数据一致性带来挑战
沟通成本:每个微服务可能由不同的人、不同的团队开发,给定位修改程序带来难度