微服务和分布式谁更好,分布式架构设计和微服务

首页 > 经验 > 作者:YD1662022-10-28 06:39:49

写在前面

拿着爸妈提供的物质,见识他们没有见识过的世面,体验他们没有体验过的人生,到头来,却嫌弃他们如此笨拙。


一、名词解释分布式系统

个人觉得分布式系统面向的是Ops,更多的是考虑系统性能和部署环境之间的问题,通过分布式解决在没有大型主机的部署环境情况下,系统性能的高可用和吞吐量,是个一个很早就提出来的一个概念,是由集中式系统过渡来的,随着计算机系统向网络化和微型化的发展日趋明显,同时业务的发展,传统的集中式处理模式越来越不能适应人们的需求,学习成本高,大型主机贵、容错性差,扩容困难。

为了解决业务快速发展给IT系统带来的巨大挑战,从2009年开始,阿里集团启动了去IOE计划,其电商系统开始正式迈入分布式系统时代。

在《分布式系统概念与设计》一书中,对分布式系统做了如下定义:

分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 (硬件或软件组件,个人理解 ,硬件组件分布我们可以结合HarmonyOS理解,音画同步,应用跨设备流转,软总线等硬件抽象的分布式,或者可以结合RAID(独立冗余磁盘阵列)理解,可以理解为以机器为粒度的磁盘阵列,软件组件分布这里结合我们常说的微服务分布式部署,类比java Web分布式系统。)

微服务架构

微服务 (Microservices) 是一种软体架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用模组化的方式组合出复杂的大型应用程式,各功能区块使用与语言无关 (Language-Independent/Language agnostic) 的API 集相互通讯。 微服务的起源是由 Peter Rodgers博士于 2005 年度云端运算博览会提出的微 Web 服务 (Micro-Web-Service) 开始,Juval Löwy则是与他有类似的前导想法,将类别变成细粒服务 (granular services),以作为 Microsoft 下一阶段的软体架构,其核心想法是让服务是由类似Unix 管道的存取方式使用,而且复杂的服务背后是使用简单 URI 来开放介面,任何服务,任何细粒都能被开放 (exposed)。这个设计在 HP的实验室被实现,具有改变复杂软体系统的强大力量。 2014年,Martin Fowler与James Lewis共同提出了微服务的概念,定义了微服务是由以单一应用程式构成的小服务,自己拥有自己的行程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用HTTP API 通讯。同时服务会使用最小的规模的集中管理 (例如 Docker) 能力,服务可以用不同的程序语言与资料库等元件协作。

个人觉得微服务架构更多的是面向dev,更多的是考虑编码和项目业务之间的问题,根据功能把应用拆分为服务。解决的是开发问题和应用复杂性,是在对于业务的快速发展中单体应用不能满足需要的时候,提出来的一个概念,《微服务架构设计模式》一书中对微服务架构做如下定义:

把应用程序功能性分解为一组服务的架构风格。(很直白的一句话,不需要多解释,对于大型系统而言,模块化是必不可少的,相信小伙伴也做过类似的项目,微服务架可以看做是模块化的一种形式)

二、比较从应用程序的扩展角度考虑

微服务和分布式都是对大型应用程序的扩展,只是扩展方向不同而已:

微服务架构和分布式系统之间的关系

个人认为,不属于包含关系,都是对于应用扩展的不同解决办法。一般情况下,微服务架构的应用一般为分布式系统。但分布式系统不一定是微服务架构。


嗯,时间原因,先写这么多,之后会查查相关论文啥的,再做详细分析和小伙伴分享。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.