系统练级攻略 | 京东架构师倾情解读

栏目: 后端 · 发布时间: 6年前

内容简介:系统搭建,小有小的灵活,大有大的难处,从小到大,系统该怎么打怪练级呢?线上的情况千变万化,交易峰值你可以规划,但是异常流量永远不可预测如我们的限流拆分:

引言

系统搭建,小有小的灵活,大有大的难处,从小到大,系统该怎么打怪练级呢?

首先:守住你的底线

  • 底线?单体实例的最大处理量
  • 单体实例?泛指单个应用实例、单个缓存实例,单个存储实例
  • 底线从何而来?压测
  • 底线恒定不变?随着服务的架构变化随时调整
  • 如:一个实例【java实例+DB】的处理峰值为500/秒,在缓存化数据后处理峰值可以调整的5000/秒,但是缓存异常情况下,系统降级,那峰值必须要回到500/秒。
  • 守不住底线?打怪如同碰见一个大 BOSS,经由负载均衡一个个秒掉你的服务,最终全局502
  • 怎么守住底线?限流、限流、限流!
  • 限流:一个系统稳定的最底层的护城河,永远不要轻视它。

线上的情况千变万化,交易峰值你可以规划,但是异常流量永远不可预测

如我们的限流拆分:

系统练级攻略 | 京东架构师倾情解读

  • 调整线上限流依据?监控,分流监控

监控的力度也是根据限流层次同步细化

PS:我们搭建了一个流量分析平台,通过接入系统,可以通过自定义规则定义流量拆分报表,并且实现精细化流量控制

其次:不断提高底线

1. 提高单位处理量

优化数据结构和使用缓存等手段,提升单体实例的最大吞吐量。

常用手段:

  • 网站静态流量分流:页面静态化、APP本地缓存、CDN分发
  • 数据缓存化:配置性数据本地预加载缓存,热点数据 redis 预加载缓存[注意:缓存也是吞吐量阀值和容量阀值]
  • 流程简化:收单流程和生产流程拆分
  • 请求流量清理:启用gzip压缩、ajax清理掉多余的数据信息

2. 无状态化

高内聚,低耦合,将应用+DB打包成一个对外可扩展的服务模块,标准有三:

  • 对内依赖数据的多源化
  • 对上游实现无依赖化
  • 对下游实现数据的自动传递

价保系统流程处理中心样例:

系统练级攻略 | 京东架构师倾情解读

最后:统筹变化,横向扩展

1. 监控为眼

统筹变化,首先要对系统的流量情况了若指掌,是通过监控系统来实现的。

2. 流程优化

只有简单的业务流程才是稳定可靠的,将业务流程和接单流程拆分,针对性配置资源,才能实现性能和资源的灵活安排。

针对现在的微服务化,要根据系统所处阶段灵活拆分,任何过度设计都会导致开发量和运维量飙升,最终影响系统的稳定性。

3. 横向扩展

集群化计算中心【容器+DB】,横向扩容缩容,外部依赖异常可灵活切换。

系统练级标准

系统练级攻略 | 京东架构师倾情解读

1. 单实例不死

通过DB限流和应用限流,保证单实例在大流量下冲击下,会出现服务性能变差,但是不会死掉。

2. 分类型限流

在细化监控基础上,针对不同业务不同流程配置不同的限流阀值,保证异常流量可监控,可阻截,高效的提供正常服务。

3. 集群扩展【DB+实例】

将DB和实例打包成一个集群,可以根据服务流量动态调整扩容缩容。

该集群具备标准:对上游通过接口扩容,数据流内部自我驱动流转,对下游主动同步。

4. 外部依赖无感化

简而言之就是外部依赖接口挂掉不影响系统的核心功能,通过将相关依赖数据预抓取实现热数据备份,保证接口挂掉后自我降级,保证服务的可用性。

每个阶段都是应该随着系统的流量的增加,逐级优化,反之就是过度设计,导致研发和线上运维成本等上升,反而影响系统稳定性。

刘慎宝:京东财务研发部架构师,主要负责财务研发部的基础组件和各系统技术方案支持,10+年互联网研发专家。2010年入职京东并历经几乎所有618和双11挑战。精通高并发服务搭建和业务建模,曾多次主导京东财务系统架构升级和数据库升级,主导结算魔方重构,订单台账优化、价保优化等重大研发项目,对财务系统有深刻理解。

【本文来自51CTO专栏作者张开涛的微信公众号(开涛的博客),公众号id: kaitao-1234567】

戳这里,看该作者更多好文


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Probability and Computing

Probability and Computing

Michael Mitzenmacher、Eli Upfal / Cambridge University Press / 2005-01-31 / USD 66.00

Assuming only an elementary background in discrete mathematics, this textbook is an excellent introduction to the probabilistic techniques and paradigms used in the development of probabilistic algori......一起来看看 《Probability and Computing》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码