写点什么

微信朋友圈架构设计

作者:风行
  • 2022-10-13
    浙江
  • 本文字数:502 字

    阅读完需:约 2 分钟

复杂度分析

微信朋友圈的总体复杂度属于业务复杂度和质量复杂度都比较高的业务;

  1. 涉及发朋友圈、看朋友圈、评论、回复、朋友圈权限等众多业务功能

  2. 微信朋友圈一上线就受到大量用户的青睐

  3. 服务不允许 down 机,否则会有公关危机,给公司带来负面影响

本次重点分析发朋友圈、看朋友圈业务复杂度


架构设计

基于业务复杂度,架构设计三原则,设计了单机集群架构和异地双活架构

单机集群架构

设计理由:

  1. 在业务初期,用户体量尚未爆发式增长前,基于演化原则,先采用单机集群架构即可

  2. 朋友圈业务无特殊的负载需求,则负载均衡直接采用 nginx 论策略即可

  3. 根据用户使用场景,发朋友圈和看朋友圈无需单独拆分服务,只需要做好集群负载即可

  4. 由于朋友圈的数据量非常大,则可根据用户进行数据分片

  5. 用户刷朋友圈的频率高,则可对近期可见的朋友圈内容进行缓存,提升访问速度,降低数据库查询压力

异地双活架构


设计理由:

  1. 当用户体量达到一定程度,为了尽可能的保证服务高可用,则可采用异地双活架构,保证不会因为单机房 down 机而导致服务不可用

  2. 流量通过 nginx 可以分发到两个机房

  3. 由于机房跨两地,数据库需要进行双向同步,为了降低数据同步延迟,最好是能有有通信专线

  4. 数据缓存则可以直接使用本地机房的缓存

发布于: 刚刚阅读数: 4
用户头像

风行

关注

有志者事竟成 2018-07-17 加入

还未添加个人简介

评论

发布
暂无评论
微信朋友圈架构设计_架构_风行_InfoQ写作社区