对微服务、集群、SOA、分布式的理解

一、微服务

1、什么是微服务

微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

微服务架构 = 80%的SOA服务架构思想 + 100%的组件化架构思想 + 80%的领域建模思想

2、通俗理解

由于业务间的逻辑越来越复杂,我们就不把这些业务全部杂糅在一起,每个业务都分开来做,这就是微服务,而微服务就是一种特殊的分布式。

3、优缺点

优点:上面的单体系统全部运行于一个进程之内,资源相互影响,添加功能可能会影响其它功能,导致维护麻烦。 而微服务一切分为不同的模块,运行于自身进程内,而且不同的服务可以使用不同的语言充分发挥优势。

缺点:引入了分布式的复杂性,如接口一致性。 不过很多问题强大的Spring Cloud都已经提供了解决方案!

图1.1:

对微服务、集群、SOA、分布式的理解_第1张图片

 

二、SOA

1、什么是SOA

SOA(Service-Oriented Architecture),中文全称:面向服务的架构。

SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。

2、通俗理解

SOA把系统分离成不同的服务,使用接口来进行数据交互,最终达到整合系统的目的。

3、优缺点

优点:敏捷性、一致性、业务流程的改进、灵活性、数据统一、运行监控、利用操作平台。

缺点:组织结构的改变、组织权力结构的改变、业务面临的新挑战、IT变得简单之前会越来越复杂、没有数据视图、监控复杂性、技术不匹配。

4、SOA的三大特征

1)独立的功能实体

2)大数据量低频访问

3)基于文本的消息传递

三、分布式

注:集群是个物理形态,分布式是个工作方式。

1、什么是分布式

分布式就是把一个大而复杂的业务计算分配到多个业务节点机器上,即多个节点机器构成一个完整的业务链。

一个业务分拆多个子业务,部署在不同的服务器上。

一个系统分为很多个子系统,这些子系统相互配合完成整个的业务逻辑叫做分布式,分布式中每一个节点都可以配置集群.。

(而集群指的是将几台服务器集中在一起,实现同一业务。)

å¾®æå¡ååå¸å¼çåºå«

        将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务。

  上面:service A、B、C、D 分别是业务组件,通过API Geteway进行业务访问。

  注:分布式需要做好事务管理。

例如:

对微服务、集群、SOA、分布式的理解_第2张图片

2、单体应用和分布式的比较

对微服务、集群、SOA、分布式的理解_第3张图片

四、集群

注:集群是个物理形态,分布式是个工作方式。

1、什么是集群

    集群就是具有完整功能的系统群集,一个集群节点坏了,其它节点能照常运行,这是不是像一个并联电路?一个并联电路节点坏了,其它节点还是能够正常工作的。
     集群的功能作用就是为了增加整个系统的负载和吞吐量,所以一般我们把集群和负载均衡拿到一起来讨论和研究,当然,集群的另一个显著功能就是做系统的容错,为了保证系统稳健、长久的运行下去,一个集群节点的故障不会导致整个系统完蛋,对于客户而言是透明的,只要能正常访问,他们都不知道您系统中或许某几个系统节点已经罢工了,这样就涉及到云计算中的弹性分配,我们能根据系统的高峰、低谷期动态增加或者减少集群节点。

2、通俗理解

同一个业务,部署在多个服务器上。(即:多台服务器部署相同应用构成一个集群)

3、集群的两大特性、能力、技术

特性:可扩展性、高可用性

能力:负载均衡、错误恢复

技术:集群地址、内部通信

注:内部通信是集群能正常运转的基础,它使得集群具有均衡负载和错误恢复的能力。 

五、补充:

1)分布式和集群的区别:

集群:同一个业务,部署在多个服务器上
分布式:一个业务分拆多个子业务,部署在不同的服务器上

2)微服务和SOA的区别:

SOA(Service Oriented Architecture)“面向服务的架构”:他是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在与操作系统进程中。各个服务之间 通过网络调用。

微服务架构:其实和 SOA 架构类似,微服务是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。

对微服务、集群、SOA、分布式的理解_第4张图片

3)微服务和分布式的区别及联系

1.分布式属于微服务

2.区别及联系

       分布式:分散压力。

  微服务:分散能力。

  分布式:

  不同模块部署在不同服务器上;

  作用:分布式解决网站高并发带来问题;

  集群:相同的服务;

  多台服务器部署相同应用构成一个集群;

  作用:通过负载均衡设备共同对外提供服务;

  SOA[组装服务/ESB企业服务总线]:

  业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力;

  通过服务的组合和编排来实现上层的业务流程;

  作用:简化维护,降低整体风险,伸缩灵活;

  微服务[找到服务/微服务网关open API];

  架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合)其它特性(单一职责,边界,异步通信,独立部署)是分布式概念的跟严格执行;

  SOA到微服务架构的演进过程;

  作用:各服务可独立应用,组合服务也可系统应用(巨石应用[monolith]的简化实现策略-平台思想).

4)ESB和微服务API网关
1.ESB(企业服务总线),简单 来说 ESB 就是一根管道,用来连接各个服务节点。为了集 成不同系统,不同协议的服务,ESB 做了消息的转化解释和路由工作,让不同的服务互联互通;

2.API网关:API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。

未完待续。。。。。。
参考文章:
https://blog.csdn.net/zpoison/article/details/80729052

https://my.oschina.net/zkpursuit/blog/1612545 

https://www.aliyun.com/jiaocheng/179833.html

https://www.cnblogs.com/xzwblog/p/7255364.html

https://blog.csdn.net/qq_32297447/article/details/79081112

你可能感兴趣的:(分布式,服务器框架)