美文网首页
理解微服务--软件结构演进

理解微服务--软件结构演进

作者: 刘磊_3a3b | 来源:发表于2018-02-04 18:54 被阅读0次

一、单体架构

特点:

    1.所有功能集成在一个工程中

    2.部署方式:所有功能打成一个war包部署到服务器

    3.应用和数据库分开部署

    4.通过部署应用集群和数据库集群来提高系统性能

优点:

    1.架构简单,前期开发简单、成本低, 项目周期短,适合小型项目

缺点:

    1.全部功能集中在一个工程,对于大型项目不利于开发、扩展、维护

    2.想要提升性能只能通过增加服务器,成本太高

    3.技术栈受限(一般一个项目只能使用一种语言)


二、垂直架构

特点:

    1.将一个大项目拆分成多个小的单体项目

    2.项目之间存在一些功能的重复,比如上图中都有用户管理

    3.项目之间的接口一般为数据同步(数据库之间同步,或应用通过网络接口同步)

优点:

    1.项目架构简单,

    2.通过垂直拆分,原来的单体项目不会无限扩大

    3.不同项目可以采用不同的技术

缺点:同单体架构

三、SOA架构

特点:

    1.将重复的功能抽取成组件,以服务的方式给各个系统提供服务

    2.各个系统与服务之间通过webservice、rpc等方式通信

    3.ESB企业服务总线作为系统和服务之间的桥梁

优点:

    1.将重复的功能抽取为服务,提高开发效率,提高系统的客重用性、可维护性

    2.针对不同服务的特性指定不同的优化方案,即压力较大的服务可以多部署服务器

缺点:

    1.系统和服务的界限模糊,不利于开发和维护

    2.服务的接口协议不固定,种类繁多,不利于系统维护

    3.抽取的服务的粒度太大,系统和服务之间耦合度高


四、微服务架构

特点:

    1.将系统服务曾完全独立,并将服务曾抽取成微服务

    2.微服务遵循单一原则

    3.微服务之间采用RESTful等轻量协议传输

优点:

    1.服务拆分粒度更细,有利于资源重复利用,提高开发效率

    2.微服务架构去中心化,服务见采用RESTful等轻量协议通信

    3.迭代周期更短

缺点:

    1.微服务过多,服务治理成本高,不利于维护

    2.分布式开发技术成本高(分布式事务等)

相关文章

  • 理解微服务--软件结构演进

    一、单体架构 特点: 1.所有功能集成在一个工程中 2.部署方式:所有功能打成一个war包部署到服务器 3.应用和...

  • 微服务架构

    一、软件架构演进 单体结构 垂直架构 SOA架构 微服务架构 一、微服务架构 分布式 不同模块部署在不同的服务器上...

  • 软件架构的演进,了解单体架构,垂直架构,SOA架构和微服务架构的

    软件架构演进 软件架构的发展经历了从单体结构、垂直架构、SOA架构到微服务架构的过程,博客里写到了这四种架它们的...

  • 网络编程入门

    软件结构 C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、微信等软件。...

  • 01、DDD和微服务的关系

    软件架构模式的演进 微服务设计和拆分的困境 1、微服务的粒度应该多大呀?2、微服务到底应该如何拆分和设计呢?3、微...

  • 分布式系统中的相关概念0704

    1.软件架构的演进过程 软件架构的发展经历了由单体架构、垂直架构、SOA架构到微服务架构的演进过程,下面我们分别了...

  • RPA的发展

    1. RPA的发展历程 对于RPA的演进路线,软件产品厂商有产品演进策略,咨询公司和实施方也会有各自的观点和理解。...

  • DDD之1微服务设计为什么选择DDD

    背景 名词解释 如果你的团队目前正是构建微服务架构风格的软件系统,问自己两个问题? 软件架构演进 软件架构大致经历...

  • 日更五

    在一个开发团队里,架构师很重要,他决定了软件结构,这个结构决定了软件未来的可读性、可扩展性和可演进性。 架构师的名...

  • 2022-09-22 SAAS

    SaaS,Software as a service,软件即服务。 软件很好理解,可是软件为什么是服务呢?如果说“...

网友评论

      本文标题:理解微服务--软件结构演进

      本文链接:https://www.haomeiwen.com/subject/svtvzxtx.html