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

开发 开发工具 架构
系统搭建,小有小的灵活,大有大的难处,从小到大,系统该怎么打怪练级呢?下面,我们起来看。

引言

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

首先:守住你的底线

  • 底线?单体实例的***处理量
  • 单体实例?泛指单个应用实例、单个缓存实例,单个存储实例
  • 底线从何而来?压测
  • 底线恒定不变?随着服务的架构变化随时调整
  • 如:一个实例【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】

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

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2015-12-09 15:16:03

架构师京东架构

2013-06-14 10:36:32

VIM

2018-09-13 15:00:51

JavaHashMap架构师

2018-07-04 13:41:17

架构系统结构数据库

2017-09-16 18:29:00

代码数据库线程

2011-07-19 13:27:35

2014-04-09 18:01:42

京东

2013-06-09 09:56:35

2016-08-29 11:33:23

京东云云计算云安全

2018-03-12 15:21:20

2018-10-11 10:55:44

分布式文件系统HDFS

2016-07-21 17:50:39

京东

2018-05-17 16:45:29

Java购物车京东

2016-08-26 11:12:03

2012-11-01 15:14:49

京东数据部架构师

2016-06-12 11:33:18

数据中心

2016-04-20 17:18:29

分布式数据库京东WOT

2020-06-09 14:00:41

IBMThink 2020

2010-04-21 10:32:47

Windows Ser

2017-11-17 15:57:09

Java多线程并发模型
点赞
收藏

51CTO技术栈公众号