从 0 开始学微服务
胡忠想
微博技术专家
63927 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 43 讲
开篇词 (1讲)
结束语 (1讲)
从 0 开始学微服务
15
15
1.0x
00:00/00:00
登录|注册

30 | 如何做好微服务容量规划?

专栏上一期我给你讲解了单体应用拆分为微服务后带来的开发、测试和运维复杂度的提升,可以通过 DevOps 实现 CI/CD 流程的自动化来解决。除此之外,单体应用拆分为微服务还带来另外一个问题,也就是拆分出来后的多个微服务容量如何规划的问题。在单体应用时,只需要针对这个单体应用的访问量和实际接口性能来决定要不要给单体应用扩容,而拆分为众多的微服务之后,需要考虑每个服务的容量规划,它的复杂度主要来自下面几个方面。
服务数量众多,纯靠人肉运维难以管理,比如微博 Feed 业务仅仅 RPC 服务就有将近 40 个。
服务的接口表现差异巨大,有的接口属于访问量比较大,但接口响应时间比较短的轻接口;有的接口属于访问量比较小,但接口响应时间比较长的重接口。比如微博 Feed 业务中计数接口的平均耗时只有 2~3ms,而微博 Feed 业务中 Feed 接口的平均耗时要超过 200ms。
服务部署的集群规模大小不同,需要扩容的机器数量差异很大。比如微博的 AB 测试服务集群只有大约 20 台机器,扩容只需要几台机器就满足了;而 Feed 服务则有上千台机器,往往扩容需要上百台机器。
服务之间还存在依赖关系,在服务扩容的时候,还需要考虑依赖服务的容量是否足够。比如微博 Feed 业务扩容还依赖用户关系服务和 Card 服务,扩容时还需要考虑依赖的用户关系服务和 Card 服务容量是否有问题。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学微服务》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(17)

  • 最新
  • 精选
  • 波波安
    老师,这里都是考虑服务层面的扩缩容。对于数据库层面存在瓶颈的情况,有什么经验分享吗。

    作者回复: 数据库方面因为实现自动扩缩容的难度太大,我们目前是留有足够的冗余度,核心数据库都是4倍冗余

    13
  • 每天晒白牙
    请问阿忠伯,分区加权计算,响应时间越长,加权越大的原因是什么呢?

    作者回复: 这里权重指的是对机器资源的占用

    12
  • Switch
    为什么响应时间越长,权重越高? 引用:区间加权来计算,也就是把请求按照响应时间分成多个区间,每个区间分别赋予不同的权重,响应时间越长权重越高

    作者回复: 这里权重代表的是对系统资源的占用

    1
  • 李二木
    问一个与本节无关的问题,微服务通过http请求调用,数据交换你们做了压缩吗?如果使用过那么用的那种方式呢?

    作者回复: 一般会用gzip压缩

    1
  • 扁扁圆圆
    关于权重那块,慢请求越多,计算出来的单机容量更高?不是应该更低吗?

    作者回复: 这里容量应该是所占容量的意思

  • Ricky Fung
    想问一下在生产环境做压测,由压测产生的数据要如何处理才不会污染真实的数据?
    1
    5
  • 波波安
    不评估数据库的承受能力吗,不停的扩展服务,把数据库压挂了怎么办?
    1
    2
  • Do
    安全线和致命线是怎么设定的呢? 和集群容量是什么样的关系?
    1
  • 俯瞰风景.
    微服务容量规划的目的是为了合理高效地利用硬件资源。 做出合理的容量规划的前提是对容量进行评估,通过监控数据指标,绘制集群水位线,然后通过水位线做出扩容和缩容的调度决策。
  • Tree
    如果响应时间越大,占用的权重越大,那么最终在计算集群容量的时候该怎么计算呢
收起评论
显示
设置
留言
17
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部