1、单体应用
网络
一、概念架构
一个归档包包含了全部的功能的应用程序,这样的应用系统被称为“单体应用”。分布式
二、优缺点ide
单体应用在开发出去具备易部署、易测试的优势,但随着需求的不断增多,代码量的不断上升,单体应用的缺点也随着暴露出来:微服务
(1)复杂性高:整个项目包含的模块很是多,各个模块之间的边界模糊,依赖关系不清楚。新增功能或修改功能时颇有可能带来隐患;测试
(2)部署频率低:修改一个模块须要部署真个项目;spa
(3)可靠性差:其中一个模块的bug例如死循环等致使整个项目的崩溃。设计
2、微服务进程
一、概念事务
微服务是一种架构风格,是一种将一个单一应用系统开发为一小组小型服务的方法,每个服务都运行在本身的进程中,服务间采用轻量级通讯机制(例如HTTP)。每一个服务可使用不一样的开发语言,能够根据功能特色配置不一样的硬件。
二、特色
(1)每一个服务单独运行在本身的进程中;
(2)一系列独立的服务共同构建整个系统;
(3)每一个服务业务独立;
(4)服务之间经过轻量级通讯机制进行通讯;
(5)可使用不一样的开发语言和数据存储结构。
以电影票业务为例,在单体应用中,一个大的系统中包含不少模块,其中包括用户模块和电影模块。在微服务架构中,将用户模块和电影模块分别独立成两个服务:用户服务和电影服务,当两个服务之间须要通讯时,能够经过HTTP协议进行数据交流。
三、缺点
微服务虽然讲业务进行了拆分,使业务逻辑更加明确,但依然存在不少使人头疼的缺点:
(1)分布式固有的复杂性:网络延迟、系统容错、分布式事务等问题;
(2)重复劳动:可能存在这种状况,多个功能都须要使用同一个功能,但该功能尚未达到要分解成一个微服务的程度。
四、微服务设计原则
(1)单一职责:每一个服务只负责单独的功能;
(2)服务自治:与其余服务高度解耦;
(3)轻量级通讯机制;
(4)微服务粒