何小豆儿在此 发表于 2023-8-8 11:27:39

聊一聊方案中心性能优化中做的缓存设计

https://img2023.cnblogs.com/blog/27422/202307/27422-20230729172001156-1083329152.jpg
本篇文章主要是对方案性能优化2.0中,所做的缓存设计的过程、方案、结果做一个总结。一、前言
对于方案中心,核心业务场景之一是物流场景下的物流费用计算。而部分业务场景下,对于物流费用计算的性能有较高要求,如ICBU网站运费模板链路,通方案中心计算快递、海拼物流费用。在接入新的流量场景的背景下(ICBU商品搜索接入运费展示、菜鸟经营中台快递运力线回迁方案中心),方案中心将会面对更高的性能压力。此前预估如需要支持运费模板计算核心20国运费,方案中心集群qps需要达到6600,计算全量220国运费,集群qps则需要达到35600。但是优化前方案中心集群qps性能仅仅在1600左右,远远达不到要求,此前已经做了1.0的优化版本,qps提升40%,但是还达不到支撑计算20国运费的要求。2.0优化目标就是要达到足以支撑计算核心20国运费的要求。本篇文章主要是对2.0的优化中,所做的缓存设计的过程、方案、结果做一个总结。二、优化2.0面临什么问题
2.1 1.0优化做了什么
 

在1.0 的性能优化中,我们制定了降低CPU资源消耗、合理使用缓存资源等措施,整体集群性能提升在40%左右,qps集群压测能到2300,但这与目标6600还有差距。因此,针对复杂的查价流程,需要进一步在代码架构层面进行优化。1.0 已做优化措施

[*]降低CPU资源消耗


[*]规则引擎表达式预先编译并且缓存
[*]减少大对象深度复制,快递场景可以完全不复制
[*]避免通过JSON序列化,再反序列化实现创建对象并且赋值
[*]底层元数据查询方法,避免使用第三方封装的校验框架
[*]日志打印优化,debug添加isDebug判断


[*]tair使用优化


[*]mget替代tair get方法使用,降低网络资源消耗
 
2.2 计费流程的核心问题--嵌套循环查询
 

https://mmbiz.qpic.cn/mmbiz_png/Z6bicxIx5naKzuaA8zxicfW8caJyCpc6Tv508gkECibKoKecXDTNI3kkU8WlSmAmv7oTBeTibhjn5GYjFM4laoNKUg/640?wx_fmt=png图 2.2-1 简化的计费流程<ul >匹配运力线方案 1
页: [1]
查看完整版本: 聊一聊方案中心性能优化中做的缓存设计