分布式系统和微服务的关系

 分布式系统和微服务的关系

      一、分布式系统 

      分布式系统是由多台计算机组成的系统,这些计算机通过网络进行通信和协作,共同完成一个或多个共享目标。在分布式系统中,各个计算机节点可以分布在不同的地理位置,它们通过消息传递或共享存储等方式进行通信。分布式系统的设计目标包括提高性能、可靠性、可扩展性、容错性等。

      二、微服务

      跟微服务架构与之相对的就是单体架构

      1. 单体架构

      通俗地讲,“单体应用(monolith application)”就是将应用程序的所有功能都打包成一个独立的单元,统一部署运行。

     

      

    单体应用有如下优点:

 

  • 开发简单直接,集中式管理, 基本不会重复开发
  • 功能都在本地,没有分布式的管理开销和调用开销

 

    它的缺点也非常明显,特别对于互联网公司来说:

 

  • 开发效率低:所有的开发在一个项目改代码,递交代码相互等待,代码冲突不断
  • 代码维护难:代码功能耦合在一起,新人不知道何从下手
  • 部署不灵活:构建时间长,任何小修改必须重新构建整个项目,这个过程往往很长
  • 稳定性不高:一个微不足道的小问题,可以导致整个应用挂掉
  • 扩展性不够:无法满足高并发情况下的业务需求

 

      2. 微服务架构

     随着业务需求的快速发展变化,敏捷性、灵活性和可扩展性需求不断增长,迫切需要一种更加快速高效的软件交付方式。微服务就是一种可以满足这种需求的软件架构风格。单体应用被分解成多个更小的服务,每个服务有自己的归档文件,单独部署,然后共同组成一个应用程序。这里的“微”不是针对代码行数而言,而是说服务的范围限定到单个功能。

     

     

      微服务是一种软件架构风格,将应用程序设计为由一组小型、独立的服务组成。每个服务都有自己的独立部署、运行和扩展能力,通过轻量级的通信机制(通常是HTTP或消息队列)进行协作。微服务架构旨在简化大型应用程序的开发、部署和维护,提高系统的灵活性和可维护性。

      最简单的情况下,本机运行多个容器,只用一台服务器就实现了面向服务架构,这种实现方式就叫做微服务。

      微服务有如下优点:

 

  • 微服务是松藕合的,无论是在开发阶段或部署阶段都是独立的。
  • 能够快速响应, 局部修改容易, 一个服务出现问题不会影响整个应用。
  • 易于和第三方应用系统集成, 支持使用不同的语言开发, 允许你利用融合最新技术。
  • 每个微服务都很小,足够内聚,足够小,代码容易理解。团队能够更关注自己的工作成果, 聚焦指定的业务功能或业务需求。
  • 开发简单、开发效率提高,一个服务可能就是专一的只干一件事, 能够被小团队单独开发,这个小团队可以是2-5人的开发人员组成。

 

    同样的, 也存在如下缺点:

 

  • 微服务架构带来过多的运维操作, 可能需要团队具备一定的DevOps技巧。
  • 分布式系统可能复杂难以管理。因为分布部署跟踪问题难。当服务数量增加,管理复杂性增加。

 

      三、分布式系统和微服务之间的关系

       1. 分布式系统是一种架构范式

       分布式系统是一种软件架构的设计方式,用于解决多台计算机协同工作的问题。微服务架构是在这种分布式系统的背景下提出的一种服务组织方式。

       2. 微服务是一种实现方式  

       微服务是一种软件架构风格,它可以在分布式系统中应用。微服务架构将一个大型应用划分为一组小型、自治的服务,每个服务都有自己的业务逻辑,可以独立开发、部署和运行。微服务通常运行在分布式环境中,利用分布式系统的特性。

       微服务是分布式系统的一种形式: 微服务是分布式系统的一种实现形式,它采用了分布式的原则和理念。微服务通过将应用划分为小型服务并通过网络进行通信,体现了分布式系统的核心概念。

      四、总结

      总体而言,微服务架构可以视为是在分布式系统的基础上演进而来的一种服务架构,它更强调服务的独立性、自治性和松耦合,适用于构建灵活、可维护的大型应用系统。

      分布式系统作为一种更广泛的概念,包括了各种架构和设计方式,而微服务是其中一种具体的实践方式。 

     

      参考链接:https://cloud.tencent.com/developer/article/1877057

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章