【高并发项目实战】工程模块化与活动会场静态化架构原理解析
前言📫 作者简介:小明 java 问道之路,专注于研究计算机底层,就职于金融公司后端高级工程师,擅长交易领域的高安全/可用/并发/性能的设计和架构📫
🏆 CSDN 专家博主/Java 领域优质创作者、阿里云专家博主、华为云享专家、51CTO 专家🏆
🔥 如果此文还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦
本文导读
活动会场往往聚集着大量流量,千万甚是上亿级别很平常,我们做架构设计的时候,应该前端、后端、网关、配置等等都要考虑进去才是一个合格的架构,本文采取工程模块化与活动会场静态化做架构并讲解其设计原理。
一、接口数据静态化
工程中的接口数据静态化,对 cms 内容管理系统配置的动态模块数据通过消息推送到 searchfacade 系统,searchfacade 对动态模块配置的关键数据进行存储,异步解析配置处理,调用商品和活动基础系统获取商品以及活动优惠相关数据生成对应的模块动态 json 数据文件,生成的 json 数据上送到对应的 nas 服务。
1、cms 原理简析
页面动态化配置对运营、营销等方面有很多好处,一是在减少重复性、不必要的开发工作,避免了开发资源的争夺和漫长的排期等待。二是灵活的配置方案、便捷的配置工具,对技术的要求就相对较高了。
2、CMS 的四大特点
2.1、网站结构
CMS 的功能简单来说可以表述如下: 一个内容管理系统是把一个网站的内容(文字,图片,等等)与网站的组件分离开来,可以将各个页面连接到一起,可以控制页面的显示。
2.2、模型管理
这里的模型是指数据模型,比如新闻、短消息之类的数据模型。一般的 CMS 都有一些内建的数据模型,可以对这类模型进行管理,同时 CMS 基本上都支持自定义数据模型。
2.3、标签
CMS 一般都使用了显示模板,而模板的核心就是显示样式和标签。
2.4、静态化
一般 CMS 都具有将记录转变为 HTML,即页面静态化的功能。
3、searchfacade 系统解析
searchfacade 系统是一个离线处理服务的系统,业务流程离线操作处理系统,顾名思义该系统主要功能是系统的搜索前端,需要保障稳定性和安全性。同时为内部人员(开发、运营、测试、产品等等)使用 searchfacade 系统需要配置管理后台,searchfacade 系统对动态模块配置的关键数据进行存储,异步解析配置处理,系统内部设置有流程引擎服务器,主要是网关、拦截、监控等,离线处理服务器处理业务,WEB 应用服务器,为了更加直观管理和方便操作。
流程引擎服务器连接有流程数据库,接入系统网关上报页面信息,离线处理服务器接收数据推送通知,例如活动信息、流量信息、用户信息等等,流程邮件数据库通过内外网隔离网关与流程邮件收发服务器实现,流程邮件收发服务器通过外部网络与外网应用服务器连接,把邮件存入流程邮件数据库中,并推送对应的处理人。
二、模块化和会场页面渲染解析
模块化和会场页面渲染,当用户请求对应会场页面时,cdn 已有缓存会从 cdn 直接返回页面,如过无回源到对应 node 服务,node 服务处理页面加载 cms 配置进行解析,解析到对应商城数据模块则从对应 nas 获取 json 数据进行页面渲染,渲染完后返回给到客户端之间展示,页面中未获取到预处理的数据则客户端调用接口做异常补偿渲染。
三、数据一致性设计
数据一致性在一致性方面基于消息机制采取最终一致性,cms 配置内容通过消息异步同步到 searchfacade 离线处理;商品和活动等基础数据如商家和运营进行新增和修改也通过消息异步通知到 searchfacade,searchfacade 接收到消息后比对对应商品和活动在配置中是否配置,如有数据则触发模块数据预处理逻辑重新生成 json 文件,并跟进热度情况及时刷新 cdn;未确保消息丢失造成一致性问题,搭建 canal 伪装数据库备库监听 binglog+Kafka 消息作为更新补偿。 过期配置和热点配置处理:当用户请求页面时,客户端获取到页面后,会根据页面内容异步上报各模块访问信息(模块 id+访问时间等),searchfacade 接收到访问上报后会更新访问时间和统计周期内访问量已做权重加权,长时间无访问量的数据不做预处理,访问量大的热点模块预处理频次加快(始终保持数据更新的时效性)
四、系统交互结构
总结
活动会场往往聚集着大量流量,千万甚是上亿十亿级别,本文采取工程模块化与活动会场静态化做架构并讲解其设计原理,并在页面渲染、页面模块化、搜索和数据一致性上面的着重设计一一解析。
版权声明: 本文为 InfoQ 作者【小明Java问道之路】的原创文章。
原文链接:【http://xie.infoq.cn/article/020c88403eba228d2d0cbdc89】。文章转载请联系作者。
评论