单体系统时代
单体架构
- 优
- 易于开发测试部署
- 纵向代码分层 (可参考以下的三层分层),横向模块扩展 (多个功能模块或者多服务器同一份代码)、负载均衡都支持
- (表示层 - Presentation Layer:Controller)
- (业务逻辑层 - Business Logic Layer:Service)
- (数据访问层 - Data Access Layer:Dao)
- 劣
- 自治与隔离能力差,出现问题影响全局
- 测试发布更为复杂
- 难以技术异构,实现不够优雅
选择分布式的根本原因
- 随着系统的规模越来越大,程序出错是必然。允许错误的发生,获得自治与隔离的能力才是舍弃单体选择分布式的根本原因