• 传统开发模式

所有功能打包在一个War包中,基本没有外部依赖,部署在一个JEE容器(Tomcat,JBoss,WebLogic),里面包含了DAO,Service,Controller,UI等所有逻辑

微服务的两种开源架构 微服务开发模式_微服务

 

 

 优点:

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

缺点:

  • 效率低:开发都在同一个项目改代码,相互等待,冲突不断
  • 维护难:代码功能耦合在一起
  • 不灵活:构建时间长,任何小修改都可能重构整个项目,耗时
  • 稳定性差:一个微笑的问题,都可能导致整个应用挂掉
  • 稳定性不够:无法满足高并发下的业务需求
  • 对服务器的性能要求要统一,要高
  • 微服务开发

微服务:架构风格(服务微化)

微服务是指开发一个单个小型的但有业务功能的服务,每个都有自己的处理和轻量通信机制,可以部署在单个或多个服务器上,也指一种松耦合的,有一定有界上下文的面向服务的架构

目的 : 有效地拆分应用,实现敏捷开发和部署

 

微服务的两种开源架构 微服务开发模式_服务器_02

 

 

   优点:

  • 每个微服务都很小,这样能确切地聚焦一个指定的业务功能和业务需求
  • 微服务能够被小团队开发
  • 微服务是松耦合的,是有功能的,有意义的服务,无论在开发阶段或部署阶段都是独立的
  • 微服务可以用不同的语言开发
  • 微服务可以部署在中低端配置的服务器上
  • 很容易和第三方集成
  • 每个服务可以有自己的存储能力,单独的库,也可以有统一的库

缺点 : 

  • 微服务会带来更多的操作
  • 需要双倍的努力
  • 分布式系统复杂难管理
  • 分布式跟踪部署难
  • 当服务器数量增加时,管理复杂度增加