单应用架构和微服务架构
1、单应用架构
一个完整应用程序(monolithic application)构建成一个单独的单元。某个模块升级,需要升级整个服务。
优点
-
在开发团队规模比较小时,单应用架构开发非常高效
-
项目部署也比较容易
-
依靠部署多台复制品,配合负载均衡实现高可用和高并发。
缺点
-
当项目功能迭代到非常大,功能模块之间界限不是非常明确,逐渐增加维护难度。
-
开发时,IDE需要加载全部代码。
-
web容器的负载也逐渐增加。
-
持续部署困难,需要重启整个web容器。
-
技术栈替换的难度大
2、微服务架构
微服务架构是一种将单应用程序作为一套小型服务开发的方法,每种应用程序都在其自己的进程中运行,并与轻量级机制(通常是HTTP资源的API)进行通信。这些服务是围绕业务功能构建的,可以通过全自动部署机制进行独立部署。这些服务的集中化管理已经是最少的,它们可以用不同的编程语言编写,并使用不同的数据存储技术。
微服务 无关于技术,仅仅是业务架构上的一种诉求。
所有微服务架构能解决的问题,单体应用架构都能解决,而且解决的非常好。
开发人员选择使用微服务,最大的好处就是 处理系统边界的问题, 这个系统边界 指的便是代码逻辑的边界,微服务正是遵从了关注