zhaoyu@home:~$

微服务设计模式-巨石架构

巨石架构的好处

  • 开发简单,只考虑建立一个单一的应用
  • 很容易对应用做出根本性的改变,如可以更改代码,数据库结构等。
  • 便于测试
  • 便于部署
  • 易于扩展,可以通过一个负载均衡运行多个应用实例。

巨石架构的缺点

  • 对于开发人员来说,十分复杂,单个应用太大,让开发人员很难理解。
  • 开发,启动和部署都十分缓慢。
  • 不利于扩展,因为不同的应用模块需要的资源有冲突,如餐馆数据需要内存很大,而图片数据又是CPU密集型的,他们部署在同一台机器上。

###立体扩展和微服务 立体扩展定义了将一个应用扩展的方式,如果将一个应用看成一个立方体,那么它有3个方向可以扩展,X,Y,Z。

  1. X坐标为水平扩展,通过复制,将一个应用实例扩展为多个应用实例。
  2. Y坐标为功能分解,将巨石应用按照功能分解为微服务。
  3. Z坐标为数据分区或者分片。

SOA和微服务的区别

||SOA|微服务| |—-|—-|—-| |服务之间通信|ESB ,使用重量级的SOAP或者WS*标准。|消息中间件,或者直接通信,使用Rest或者RPC等。| |数据|全局数据模型,共享数据库|每个服务有独立的数据库|