在软件设计中,经常提到和使用经典的三层模型,即表示层,业务逻辑层和数据访问层。
·表示层:用于直接和用户交互,也称为交互层,通常是网页、UI等。
·业务逻辑层:即业务逻辑处理层,例如用户输入的信息要经过业务逻辑层的处理后,才能展现给用户。
·数据访问层:用于操作数据库,用户在表示层会产生大量的数据,通过数据访问层对数据库进行读写操作。
尽管经典的三层模型在软件设计中有所划分,但业务场景却没有划分。一个典型的整体应用程序是将所有业务场景的表示层,业务逻辑层和数据访问层放入一个项目中,最后在服务器上进行编译,打包和部署。
单体架构图如下所示:
单体架构的优点
·简单部署因为它是完整的结构,所以可以直接部署在服务器上。
·单个技术项目不需要复杂的技术堆栈,并且经常可以开发一组熟悉的技术堆栈。
·较低的雇用成本单个程序员可以完成从业务接口到数据库的整个过程。
单体架构的缺点
系统启动缓慢,一个流程包含所有业务逻辑,并且涉及太多的启动模块,导致系统启动和重新启动时间较长
·系统错误隔离能力差,可用性差,任何模块错误都可能导致整个系统停机
·可扩展性差;系统的扩展只能扩展该应用程序的容量,而不能扩展某个功能点的容量
·在线问题修复周期长;任何在线问题修复都需要对整个应用程序系统进行全面升级
推荐阅读:java架构师培训:java最佳测试框架JBehave的基本介绍
如果你想了解更多关于java架构师的专业知识,可以加入JAVA架构师交流群:1160405674,里面都是同行,有资源分享包括但不限于(分布式架构、高可扩展、高性能、高并 发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、Mycat、Netty、Kafka、Mysql 、Zookeeper、Tomcat、Docker、Dubbo、Nginx)。欢迎一到五年的工程师加入,合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!