本文说明了单体架构风格的优缺点。
特点
应用程序由三部分构成:前端UI,后端服务和数据库。
后端服务处理HTTP请求,执行特定业务逻辑,从数据库检索和更新数据,以及填充要发送到浏览器的HTML视图。后端服务通常会分为几个层次和不同功能模块。
应用程序被构建为单个java war包或单个目录层次结构。要对系统进行任何更改,开发人员必须构建和部署整个应用程序。
优点
- 易于开发 - 传统的开发工具和开发流程都对单体架构有很好的支持;
- 部署简单 - 只需要把WAR文件(或目录层次结构)复制到Web服务器即可;
- 水平扩展容易 - 通过在负载均衡器后面运行应用程序的多个副本,很容易做到水平扩展。
缺点
- 随着应用程序变大且复杂,应用程序会变得难以理解和修改;
- 应用程序越来越大会让启动时间越来越长;
- 持续部署困难 - 必须在每次更新时重新部署整个应用程序;
- 独立扩展困难 - 当不同模块具有不同的资源需求时,单体架构难以独立扩展这些模块;
- 可靠性较低 - 任何模块中的错误都可能导致整个程序执行失败;
- 阻碍各个领域独立团队的发展;
- 阻碍采用新的技术。