当前位置:首页 > 经验 >

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

来源:原点资讯(www.yd166.com)时间:2022-10-28 06:39:49作者:YD166手机阅读>>

写在前面
  • 一直对微服务和分布式这两个概念模棱两可,不是太清晰,而且接触的项目也没这么大体量,没有用到过,蹭现在有时间总结一下,总结内容部分来源于《从Paxos到Zookper分布式一致性原理与实践》《微服务架构设计模式》这两本书及上海科技创新资源数据中心关于微服务定义:
  • 关于分布式系统和微服务架构的一些拙见,因为大家一直放到一起讲,所以总结一波。
  • 本文中理解有所欠缺的小伙伴请留言,多多指教。

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


一、名词解释分布式系统

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

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

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

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

  • 分布式系统更多是偏水平扩展,在ops方面的解决办法,利用部署系统环境的空间分布性,比如SOA架构中利用分布式集成大型、复杂的单体应用程序;比如对实例进行克隆,以副本的形式对应用的数据和服务提供一种冗余方式(数据副本和服务副本),从而对外提供高可用,高并发的服务。分布式需要解决分布式数据一致性以及分布式环境通信异常、网络分区等问题。比如通过Zookeeper解决分布式数据一致性的问题。分布式系统可以理解为以解决硬件层面的压力从而对应用进行扩展。
  • 微服务架构更多的是垂直方向的扩展,在dev方面解决问题,利用应用程序的功能性分解,,把应用拆分为一组服务,每个服务负责特定的功能。每个服务都相对较小并容易维护,使大型的复杂应用程序可以持续交付和持续部署。服务可以独立部署、可以独立扩展。同时微服务架构可以实现团队的自治。更容易实验和采纳新的技术。更好的容错性。即服务之间松耦合,但是单个服务又是高内聚的。微服务架构可以理解为解决软件层面的压力对应用进行扩展。
微服务架构和分布式系统之间的关系

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


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

栏目热文

微服务与分布式服务对比(微服务与分布式的优势)

微服务与分布式服务对比(微服务与分布式的优势)

分布式架构是分布式计算技术的应用和工具,目前成熟的技术包括J2EE, CORBA和.NET(DCOM),这些技术牵扯的内...

2022-10-28 05:55:48查看全文 >>

分布式和微服务都要学吗(分布式服务与微服务)

分布式和微服务都要学吗(分布式服务与微服务)

前言现在互联网IT行业现状是架构师微服务、分布式愈发火爆了,所以各位程序员同事还在等什么呢,都给我学起来撒!小编这里为大...

2022-10-28 06:26:04查看全文 >>

从分布式到微服务图解(微服务分布式开发流程)

从分布式到微服务图解(微服务分布式开发流程)

本文最初发表于 RedHat 博客网站,经原作者 Bilgin Ibryam 授权由 InfoQ 中文站翻译分享。作为 ...

2022-10-28 06:20:08查看全文 >>

属虎农历几月出生最好(老虎几点出生最好女孩)

属虎农历几月出生最好(老虎几点出生最好女孩)

同为生肖虎的人也会拥有不一样的命运,这跟你不同的出生时间也会有关系。“三分天注定,七分靠打拼”一个人的成功除了自身的努力...

2022-10-28 06:31:22查看全文 >>

土虎命几月最好(土虎命的人适合在哪个方位发展)

土虎命几月最好(土虎命的人适合在哪个方位发展)

生肖鼠生肖鼠五行属水,出生在正月、五月、七月、八月、九月份,这五个月份出生的生肖鼠命最好,一生不愁衣食。生肖牛生肖牛五行...

2022-10-28 06:19:07查看全文 >>

微服务和分布式本质区别(分布式和微服务要学吗)

微服务和分布式本质区别(分布式和微服务要学吗)

简单的说,微服务是架构设计方式,分布式是系统部署方式,两者概念不同微服务是啥?这里不引用书本上的复杂概论了,简单来说微服...

2022-10-28 06:19:29查看全文 >>

分布式与微服务的区别与联系(什么是分布式系统)

分布式与微服务的区别与联系(什么是分布式系统)

今天和大家聊一聊分布式系统的相关概念及其常见分布式组件和设计思想(不涉及计算机科学中分布式系统的技术理论之类的东西),之...

2022-10-28 06:20:16查看全文 >>

分布式系统和微服务(微服务与分布式服务对比)

分布式系统和微服务(微服务与分布式服务对比)

原文地址:https://www.yinxiang.com/everhub/note/1f39cf3a-4799-4d6...

2022-10-28 06:38:05查看全文 >>

微服务和分布式架构图解(微服务架构图谱大全)

微服务和分布式架构图解(微服务架构图谱大全)

微服务是一种架构,也是在分布式范畴之内的。多微才叫微?在分布式系统中,微服务更加强调单一职责、轻量级通信(HTTP)、独...

2022-10-28 06:17:01查看全文 >>

什么是分布式系统(分布式系统行业痛点)

什么是分布式系统(分布式系统行业痛点)

现在的架构很多,各种各样的,如高并发架构、异地多活架构、容器化架构、微服务架构、高可用架构、弹性化架构等,还有和这些架构...

2022-10-28 06:01:07查看全文 >>

文档排行