一、单体应用
1、概念
一个归档包包含了所有的功能的应用程序,这样的应用系统被称为“单体应用”。
2、优缺点
单体应用在开发出去具有易部署、易测试的优点,但随着需求的不断增多,代码量的不断上升,单体应用的缺点也随着暴露出来:
(1)复杂性高:整个项目包含的模块非常多,各个模块之间的边界模糊,依赖关系不清楚。新增功能或修改功能时很有可能带来隐患;
(2)部署频率低:修改一个模块需要部署真个项目;
(3)可靠性差:其中一个模块的bug例如死循环等导致整个项目的崩溃。
二、微服务
1、概念
微服务是一种架构风格,是一种将一个单一应用系统开发为一小组小型服务的方法,每一个服务都运行在自己的进程中,服务间采用轻量级通信机制(例如HTTP)。每个服务可以使用不同的开发语言,可以根据功能特点配置不同的硬件。
2、特点
(1)每个服务单独运行在自己的进程中;
(2)一系列独立的服务共同构建整个系统;
(3)每个服务业务独立;
(4)服务之间通过轻量级通信机制进行通信;
(5)可以使用不同的开发语言和数据存储结构。
以电影票业务为例,在单体应用中,一个大的系统中包含很多模块,其中包括用户模块和电影模块。在微服务架构中,将用户模块和电影模块分别独立成两个服务:用户服务和电影服务,当两个服务之间需要通信时,可以通过HTTP协议进行数据交流。
3、缺点
微服务虽然讲业务进行了拆分,使业务逻辑更加明确,但依然存在很多令人头疼的缺点:
(1)分布式固有的复杂性:网络延迟、系统容错、分布式事务等问题;
(2)重复劳动:可能存在这种情况,多个功能都需要使用同一个功能,但该功能还没有达到要分解成一个微服务的程度。
4、微服务设计原则
(1)单一职责:每个服务只负责单独的功能;
(2)服务自治:与其他服务高度解耦;
(3)轻量级通信机制;
(4)微服务粒
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。