springCloud入门学习(一):认识微服务架构

1、单体应用
网络

一、概念架构

一个归档包包含了全部的功能的应用程序,这样的应用系统被称为“单体应用”。分布式

二、优缺点ide

单体应用在开发出去具备易部署、易测试的优势,但随着需求的不断增多,代码量的不断上升,单体应用的缺点也随着暴露出来:微服务

(1)复杂性高:整个项目包含的模块很是多,各个模块之间的边界模糊,依赖关系不清楚。新增功能或修改功能时颇有可能带来隐患;测试

(2)部署频率低:修改一个模块须要部署真个项目;spa

(3)可靠性差:其中一个模块的bug例如死循环等致使整个项目的崩溃。设计

2、微服务进程

一、概念事务

微服务是一种架构风格,是一种将一个单一应用系统开发为一小组小型服务的方法,每个服务都运行在本身的进程中,服务间采用轻量级通讯机制(例如HTTP)。每一个服务可使用不一样的开发语言,能够根据功能特色配置不一样的硬件。

二、特色

(1)每一个服务单独运行在本身的进程中;

(2)一系列独立的服务共同构建整个系统;

(3)每一个服务业务独立;

(4)服务之间经过轻量级通讯机制进行通讯;

(5)可使用不一样的开发语言和数据存储结构。


以电影票业务为例,在单体应用中,一个大的系统中包含不少模块,其中包括用户模块和电影模块。在微服务架构中,将用户模块和电影模块分别独立成两个服务:用户服务和电影服务,当两个服务之间须要通讯时,能够经过HTTP协议进行数据交流。


三、缺点

微服务虽然讲业务进行了拆分,使业务逻辑更加明确,但依然存在不少使人头疼的缺点:

(1)分布式固有的复杂性:网络延迟、系统容错、分布式事务等问题;

(2)重复劳动:可能存在这种状况,多个功能都须要使用同一个功能,但该功能尚未达到要分解成一个微服务的程度。


四、微服务设计原则

(1)单一职责:每一个服务只负责单独的功能;

(2)服务自治:与其余服务高度解耦;

(3)轻量级通讯机制;

(4)微服务粒

相关文章
相关标签/搜索