17年Q4年商城重构接入SOA,18年5月上线流量切换完成,旺季PC端Q4日均pv3000万;双11当天,销售额一千万美金,峰值日pv统计1亿(凌晨期间,PC端流量最大,实时回源qps3000左右),系统稳定运行;

在双11前期,经过多次调优,单台Web应用服务器,核心业务诸如登陆、加车、订单可以承载tps300~500左右,商详800~1000左右(压测结果),响应时间基本都在正常范围内,但同时服务器的负载也很高(Laravel框架太重,这也是一直的诟病,不过胜在开发效率和结构清晰,同时这也是我一直在寻求与Go语言结合作为Web服务高并发业务替代的架构方向)

基于PHP做Web服务开发,像电商这类读多写少的业务,在高并发请求面前,需要结合业务特征对数据实时性的要求与缓存层级结构,充分利用好CDN、Nginx代理缓存、Redis这类缓存系统的作用,降低对应用架构的冲击,与此同时,也需要注意缓存不一致的问题,在使用缓存和设计缓存架构时候,需要提前考虑缓存的更新策略以及生存期限,以及对应的清除策略,防止高峰时间流量涌入应用系统导致服务宕机;

系统压测期间,利用strace进程分析等工具,发现诸如机房方面的DNS限制、Predis的哨兵返回可用IP的选择引起的连接负载不均衡的问题,结合之前的大促优化清单,逐一落实解决后,整体效能提升了3~5倍左右。

PHP聚合

主要负责:

  • 营销模块(优惠券、满减活动)和大促活动的技术方案设计与功能开发。
  • 新老系统之间的数据迁移。
  • 解决流量切换过程中的问题。

主要收获:

  • 熟悉营销体系从0到1的构建流程。
  • 保证老系统数据迁移到新系统稳定使用。
  • 流量逐步切换重要性。
  • 对大流量网站建设和数据库建设积累了经验。

参与后续优化收获:

  • 掌握了 strace 等相关的性能优化分析工具

全景图:(后来补充的)