主流分布式系统架构分析

主流分布式系统架构分析

ID:23851097

大小:1.05 MB

页数:19页

时间:2018-11-11

主流分布式系统架构分析_第1页
主流分布式系统架构分析_第2页
主流分布式系统架构分析_第3页
主流分布式系统架构分析_第4页
主流分布式系统架构分析_第5页
资源描述:

《主流分布式系统架构分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、

2、主流分布式系统架构分析

3、目录一、前言3二、SOA架构解析3三、微服务(Microservices)架构解析7四、SOA和微服务架构的差别9五、服务网格(ServiceMesh)架构解析9六、分布式架构的基本理论11七、分布式架构下的高可用设计15八、总结19

4、一、前言本文我们来聊一聊目前主流的分布式架构和分布式架构中常见理论以及如何才能设计出高可用的分布式架构好了。分布式架构中,SOA和微服务架构是最常见两种分布式架构,而且目前服务网格的概念也越来越火了。那我们本文就先从这些常见架构开始。二、SOA架构解析SOA全称是:ServiceOrientedArchitec

5、ture,中文释义为“面向服务的架构”,它是一种设计理念,其中包含多个服务,服务之间通过相互依赖最终提供一系列完整的功能。各个服务通常以独立的形式部署运行,服务之间通过网络进行调用。架构图如下:

6、跟SOA相提并论的还有一个ESB(企业服务总线),简单来说ESB就是一根管道,用来连接各个服务节点。ESB的存在是为了集成基于不同协议的不同服务,ESB做了消息的转化、解释以及路由的工作,以此来让不同的服务互联互通;随着我们业务的越来越复杂,会发现服务越来越多,SOA架构下,它们的调用关系会变成如下形式:

7、很显然,这样不是我们所想要的,那这时候如果我们引入ESB的概念,项目调

8、用就又会很清晰,如下:

9、SOA所要解决的核心问题§系统间的集成:我们站在系统的角度来看,首先要解决各个系统间的通信问题,目的是将原先系统间散乱、无规划的网状结构,梳理成规整、可治理的星形结构,这步的实现往往需要引入一些概念和规范,比如ESB、以及技术规范、服务管理规范;这一步解决的核心问题是【有序】。§系统的服务化:我们站在功能的角度,需要把业务逻辑抽象成可复用、可组装的服务,从而通过服务的编排实现业务的快速再生,目的是要把原先固有的业务功能抽象设计为通用的业务服务、实现业务逻辑的快速复用;这步要解决的核心问题是【复用】。§业务的服务化:

10、我们站在企业的角度,要把企业

11、职能抽象成可复用、可组装的服务,就要把原先职能化的企业架构转变为服务化的企业架构,以便进一步提升企业的对外服务的能力。“前面两步都是从技术层面来解决系统调用、系统功能复用的问题”。而本步骤,则是以业务驱动把一个业务单元封装成一项服务。要解决的核心问题是【高效】。三、微服务(Microservices)架构解析微服务架构和SOA架构非常类似,微服务只是SOA的升华,只不过微服务架构强调的是“业务需要彻底的组件化及服务化”,原单个业务系统会被拆分为多个可以独立开发、设计、部署运行的小应用。这些小应用间通过服务化完成交互和集成。组件表示的就是一个可以独立更换和升级的单元,就

12、像PC中的CPU、内存、显卡、硬盘一样,独立且可以更换升级而不影响其他单元。若我们把PC中的各个组件以服务的方式构建,那么这台PC只需要维护主板(可以理解为ESB)和一些必要的外部设备就可以。CPU、内存、硬盘等都是以组件方式提供服务,例如PC需要调用CPU做计算处理,只需知道CPU这个组件的地址就可以了。

13、微服务的特征1.通过服务实现组件化2.按业务能力来划分服务和开发团队3.去中心化4.基础设施自动化(devops、自动化部署)

14、四、SOA和微服务架构的差别微服务不再强调传统SOA架构里面比较重的ESB企业服务总线,同时以SOA的思想进入到单个业务系统内部实现真正

15、的组件化。Docker容器技术的出现,为微服务提供了非常便利的条件,比如更小的部署单元,每个服务可以通过类似SpringBoot或者Node等技术独立运行。还有一个点大家应该可以分析出来,SOA注重的是系统集成,而微服务关注的是完全分离。五、服务网格(ServiceMesh)架构解析17年年底,非侵入式的ServiceMesh技术慢慢走向了成熟。ServiceMesh,中文释义“服务网格”,作为服务间通信的基础设施层在系统中存在。如果要用一句话来解释什么叫ServiceMesh,我们可以将它比作是应用程序或者说微服务间的TCP/IP层,负责服务间的网络调用、熔断、限流

16、和监控。我们都知道在编写应用程序时程序猿一般都无须关心TCP/IP这一层(比如提供HTTP协议的Restful应用),同样如果使用服务网格我们也就不需要关系服务间的那些原来是由应用程序或者其他框架实现的事情(熔断、限流、监控等),现在只要交给ServiceMesh就可以了。服务网格架构图如下:

17、目前流行的ServiceMesh开源软件有Linkerd、Envoy和Istio,而最近Buoyant(开源Linkerd的公司)又发布了基于Kubernetes的ServiceMesh开源项目Conduit。关于微服务和服务网格的区别,我这样理解:微服务更注

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。