一、单体架构和微服务架构
单体架构:一种软件开发模式,应用程序作为单个不可分割的单元构建。所有组件都紧密耦合在单个服务器上。主要分为三个主要组件: 用户界面、业务逻辑、数据库
优点:1、 开发、部署 相对简单
2、技术栈统一
缺点:
1、无法针对单个模块扩展
2、随着业务发展,代码库膨胀
3、部署速度慢
适用场景:业务稳定、迭代周期长 发版频率
微服务架构:微服务架构是一种将应用程序分解为较小、独立的服务的软件开发模式。每个服务都有自己的代码库、数据库和用户界面,并通过网络接口与其他服务通信。
优点:
服务比较小,容易理解和开发
灵活性高:按模块弹性扩展、部署
缺点:
1、运维困难,部署多个服务
2、分布式服务数据一致性问题、分布式事务
3、多个实例之间问题排查
4、服务之间相互调用增加通信成本
适用场景
大型复杂的、快速迭代的项目、并发高的项目
SOA架构:面相服务的架构
与微服务架构有共同点:
将应用程序分解为服务
服务之间通过网络接口通信
服务可以独立开发、部署和扩展
与微服务区别:
soa | 微服务 | |
服务粒度 | 可能执行多个相关功能 | 一个特定功能 |
通信方式 | soap或者cobra | 轻量级REST或Http |
管理方式 | 小团队负责 | 中央团队负责 |
soa缺点:
服务接口定义,服务之间依赖较多