|
|
|
|
移动端

1.1.1 单体架构简介

《深入理解Spring Cloud与微服务构建》第1章微服务简介,本章介绍什么是微服务、为什么需要微服务、微服务的优缺点和挑战,并且将单体架构的系统和微服务架构的系统进行了比较。本节为大家介绍单体架构。

作者:方志朋来源:人民邮电出版社|2018-03-06 14:56

技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

第1章 微服务简介

随着互联网技术的飞速发展,目前全球超过一半的人口在使用互联网,人们的生活随着互联网的发展,发生了翻天覆地的变化。各行各业都在应用互联网,国家政策也在大力支持互联网的发展。随着越来越多的用户参与,业务场景越来越复杂,传统的单体架构已经很难满足互联网技术的发展要求。这主要体现在两方面,一是随着业务复杂度的提高,代码的可维护性、扩展性和可读性在降低;二是维护系统的成本、修改系统的成本在提高。所以,改变单体应用架构已经势在必行。另外,随着云计算、大数据、人工智能的飞速发展,对系统架构也提出了越来越高的要求。

微服务,是著名的OO(面向对象,Object Oriented)专家Martin Fowler提出来的,它是用来描述将软件应用程序设计为独立部署的服务的一种特殊方式。最近两年,微服务在各大技术会议、文章、书籍上出现的频率已经让人们意识到它对于软件领域所带来的影响力。微服务架构的系统是一个分布式系统,按业务领域划分为独立的服务单元,有自动化运维、容错、快速演进的特点,它能够解决传统单体架构系统的痛点,同时也能满足越来越复杂的业务需求。

1.1 单体架构及其存在的不足

1.1.1 单体架构简介

在软件设计中,经常提及和使用经典的3层模型,即表示层、业务逻辑层和数据访问层。

表示层:用于直接和用户交互,也称为交互层,通常是网页、UI等。

业务逻辑层:即业务逻辑处理层,例如用户输入的信息要经过业务逻辑层的处理后,才能展现给用户。

数据访问层:用于操作数据库,用户在表示层会产生大量的数据,通过数据访问层对数据库进行读写操作。

虽然在软件设计中划分了经典的3层模型,但是对业务场景没有划分。一个典型的单体应用就是将所有的业务场景的表示层、业务逻辑层和数据访问层放在一个工程中,最终经过编译、打包,部署在一台服务器上。例如典型的J2EE工程,它是将表示层的JSP、业务逻辑层的Service、Controller和数据访问层的Dao,打成war包,部署在Tomcat、Jetty或者其他Servlet容器中运行。经典的单体应用如图1-1所示。

在一个小型应用的初始阶段,访问量较小,应用只需要一台服务器就能够部署所有的资源,例如将应用程序、数据库、文件资源等部署在同一台服务器上。最典型的就是LAMP系统,即服务器采用Linux系统,开发应用程序的语言为PHP,部署在Apache服务器上,采用MySQL数据库。在应用程序的初始阶段,采用这种架构的性价比是非常高的,开发速度快,开发成本低,只需要一台廉价的服务器。此时的服务器架构如图1-2所示。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网管员必读—服务器与数据存储(第2版)

本书是在第1版的基础上全面更新、改版而成的,仍然是目前图书市场中唯一一本全面介绍硬件服务器的IT图书。本书针对近两年来所出现的新服务...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊