水平架构设计

水平架构设计

同步机构插入MQ会变为异步架构。

MQ插入越早越好,但网关会通用参数检查,请求鉴权,过滤垃圾数据。网关不会成为业务瓶颈。所以放在网关及业务逻辑层之间

异步架构

异步目的:提升吞吐量

异步手段:MQ

请求类型:

    读请求:不需要MQ,瞬时返回结果

    写请求:数据一致性强的,不可以用MQ;数据一致性弱的可以;

 问题1:用户发朋友圈后,到MQ返回给用户成功,然后立马查看不通过MQ,由网关到业务逻辑层

        用户本身,缓存用户本地数据,用户可以查看到

问题2:MQ返回成功,但MQ写入DB失败;微信处理方式,朋友圈最顶端返回消息,发送失败,让用户重试

        APP与服务端长连接,http与服务端只能长轮询

 

分层过多

  • 请求路径变长

  • 平均响应延迟变高

  • 定位问题变的复杂化

  • 运维成本增加

过少

    单体架构

 

适中

同步架构(四层)

  • 网关层

  • 业务逻辑层

  • 数据访问层

  • 数据存储层

异步架构(五层 )

  • 网关层

  • 异步消息

  • 业务逻辑层

  • 数据访问层

  • 数据存储层

 

 

缺点

每层粒度过粗

 

同步水平分层架构全貌

 

 

水平架构设计

object storage: 小公司可以使用fastDFS,数据量大的可以使用ceph

ceph运维压力比较大