https://mp.weixin.qq.com/s/3kYarzQcXY1-4t57DGn9Eg

2020-12-19

 

极速上线公司级小程序平台要面对的问题是什么呢?因为贝壳小程序平台的特殊属性,各个业务例如新房、二手、租赁、装修都是分属在各团队维护的,所以需要有平台业务方来整体对小程序的性能做分析和监控。

 

首先是每日性能监控,团队做了第一版的性能分析日报,把小程序内所有域名的请求量、平均响应时间、499以及5XX状态码的数量占比、并发峰值、qps高峰时间、稳定性百分比等等,以稳定性日报的形式输出给团队所有成员,并且详细的列出了所有接口的情况,做到小程序内所有的服务,平台都能“心中有数”。二是小程序平台自身接口的实时预警,接入了公司Fast监控平台,实时监控各接口的性能指标情况,包括域名错误、SQL异常、第三方请求超时、业务日志ERROR、服务请求异常等等,保证极速上线的小程序能健康的运行。

 

1.2 如何抗住100倍流量的九宫格?

 

全部小程序的统一带来的风险就是流量的瞬间上涨,不仅仅是各小程序流量的整合,微信九宫格的流量也会瞬间涌入小程序平台,于是项目组开始了接口的优化和拆分,首先对预估流量进行了一次压测,发现性能瓶颈在redis集群上,内存使用率达到了90%以上,但实际瓶颈并不在于redis本身,在于当前redis集群的内存管控上,这里我提一下为什么DBA需要对redis集群进行内存管控呢?首先是贝壳业务线较多,每个微服务都可以申请独立的redis集群,运维成本是比较大的,另外如果内存超过20G,高可用的切换后,恢复的时长就可能会超过5分钟,一定程度增加了故障发生的概率,所以这个内存的管控上还是有必要的。

 

那该如何优化呢?第一反应是特定业务场景的扩容,虽然说有20G内存的限制,但是如果业务场景特殊性,这个扩容也是可以支持的,不过如果在应用层面就能优化,何乐而不为?我们通过监控指标发现redis集群的cpu占用和I/O使用都是在正常的范围,唯独内存占用严重超标,经过分析发现是房源详情大json和小程序首页占用了较大的内存,一方面我们选择了合适的压缩算法,对redis大value进行压缩,减少了redis的将近一半以上的内存占用,另一方面,我们对小程序首页的redis使用了pconnet长连接,避免频繁建立短连接的性能损耗。

 

简单的优化,也给给团队带来了一些思考,以后在对面redis的优化,在平台侧要保持一定的容量buffer可扩容,避免出现容量危机,另一方面,可以利用压缩、切分等来提高性能。

 

1.3 沉淀核心服务

 

业务上,团队完成了核心的新房二手业主等业务的功能模块开发,在和app对齐的同时又丰富了微信体系内的消息订阅、推送等场景,此后又开启了小程序体系特有的业务场景开发,微信体系内的分享、渗透、拉新,以及码上有客项目的启动,开始通过小程序为贝壳几十万经纪人提供自我营销能力。

 

技术上,也沉淀了一些核心能力,例如第一版小程序的分享能力的建设,经纪人通过小程序进行分享后,可以记录核心的分享链条,包括经纪人用户关系、阅读场景、停留时长等等。

 

 

 

 

 

 

 

 

 

相关文章:

  • 2021-12-08
  • 2021-08-15
  • 2021-12-29
  • 2021-12-02
  • 2021-12-01
  • 2021-09-13
猜你喜欢
  • 2021-09-17
  • 2021-06-06
  • 2021-12-11
  • 2022-01-17
  • 2022-03-05
  • 2021-10-24
相关资源
相似解决方案