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

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

作者: 刘磊_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.分布式开发技术成本高(分布式事务等)

    相关文章

      网友评论

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

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