当前位置: 首页 > 科技观察

系统调平策略-京东架构师解读

时间:2023-03-18 15:45:01 科技观察

介绍系统搭建,小而灵活,难度大,难度大,从小到大,系统应该如何打怪升级?第一:保持你的底线底线?单实例最大处理能力单实例?一般指单个应用实例,单个缓存实例,单个存储实例的底线从何而来?压力测试的底线是不变的?可以随着服务架构的变化随时调整。例如:一个实例[java实例+DB]的处理峰值是500/s。缓存数据后,处理峰值可调整为5000/s。但是当缓存异常,系统降级时,峰值必须回到500/s。守不住底线?与怪物战斗就像遇到大老板。通过负载均衡,你的服务会被秒掉一个一个,最后全局502,如何守住底线?限流限流限流!限流:稳定的系统***层护城河,千万不要小看它。线上情况千变万化,交易高峰可以规划,但异常流量永远无法预测。比如我们的限流拆分:根据?调整线上上限?监控,流量分流监控和监控的强度也根据限流级别细化。PS:我们搭建了一个流量分析平台。通过接入系统,可以通过自定义规则定义分流报表,实现精细化的流量管控。二:不断提高底线1.提高单位处理能力,优化数据结构,使用缓存提高单实例最大吞吐量。常用方式:网站静态流量分发:页面静态、APP本地缓存、CDN分发数据缓存:配置数据本地预加载缓存、热点数据redis预加载缓存【注:缓存也是一个吞吐量阈值和容量阈值】流程简化:拆分回执process和productionprocess请求流量清洗:开启gzip压缩,ajax清理冗余数据信息2.无状态高内聚,低耦合,将应用+DB打包成一个可对外扩展的服务三个模块三个标准:多源内部依赖基于数据不依赖上游实现数据下游自动传输价格保障系统流程处理中心示例:***:统筹变革,横向扩展1.监控作为统筹之眼要想变革,首先要有很好地了解系统的交通状况,这是通过监控系统实现的。2.流程优化只有简单的业务流程才是稳定可靠的。只有将业务流程和接单流程分离,有针对性地分配资源,才能实现绩效和资源的灵活安排。对于现在的微服务来说,需要根据系统所处的阶段灵活拆分。任何过度设计都会导致开发运维量激增,最终影响系统的稳定性。3、集群计算中心[容器+DB]水平扩展,水平伸缩,外部依赖灵活切换。系统调配标准1.单实例不死通过DB限流和应用限流,保证单实例在大流量冲击下服务性能变差,但不死。2、在细致监控的基础上,针对不同的业务和流程配置不同的限流阈值,确保异常流量能够被监控和阻断,高效提供正常服务。3、集群扩容【DB+instance】DB和instance封装成一个集群,可以根据业务流量动态调整扩缩容。集群有标准:上游通过接口扩展,数据流向内部以流量驱动,下游主动同步。4、对外部依赖不敏感简而言之,外部依赖接口失效并不影响系统的核心功能。通过预取相关依赖数据实现数据热备份,保证接口故障后自降级和服务可用性。每个阶段都应该随着系统流量的增加逐步优化。否则会过度设计,导致研发和线上运维成本增加,影响系统的稳定性。刘慎宝:京东金融研发部架构师,主要负责金融研发部的基础组件和各类系统技术方案的支持,10年以上互联网研发专家。2010年加入京东,经历了几乎所有的618和双11挑战。精通高并发服务构建和业务建模。多次主导京东金融系统升级、数据库升级,主导结算魔方重构、订单账本优化、保价优化等重大研发项目,对金融系统有深刻理解。【本文来自专栏作者张凯涛微信公众号(凯涛的博客)公众号id:kaitao-1234567】点此查看作者更多好文