温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
本文主要分享的是腾讯技术团队近年来对腾讯新闻消息推送破系统做的架构优化和技术实践不实,是腾讯新闻内容重要的分发渠道。新闻Push平台承担着将新闻资讯触达到新闻用户,满足用户及时获取精品资讯的需求。新闻Push链路分为两部分,Push触发和push下发。按触发方式的不同,新闻push分为三类,人工push、自动化push、功能性push。新闻业务对新闻push平台最重要的要求是要保证精品资讯触达的及时性,要保证推送的用户体验和较好的拉起效率,推送速度慢,开发效率和问题排查效率低,模块链路过长,内耗过多,依赖服务有瓶颈,链路稳定性不好,链路处理无优先级,区分技术站不同。
01:00
一链路测试效率低。我们在自建破使消息通道时,对原来的架构做了重写,精简链路模块整合,减少系统复杂度,客户端、服务端交互接口整提升数据通信成功率,与新闻技术技术架构保持统一,优化了原来链路一些不合理的地方。之前Push式链路有C加加、go line文种技术站,除了push推荐服务外,其他C加加链路模块全部使用go模块进行了重写,以提升业务迭代效率和列路稳定性。一个架构如果如果过度微腐化了,会带来各种问题,模块间耦合严重影响研发效率,架构效率低。具体的升级内容是,处罚测合并为了一个拈,调度测合并为了一个拈,将消息通道测拈做了整合。
02:05
画像中台圈选兴趣包构建包管理服务集群有个数据一致性哨兵,定期检查集群节点的数据版本。运营在发push时会选择受众人群包,同时会指定系统、品牌等筛选项。之前的处理流程是先把人群包一股脑发到链路里,然后再下发链路里,根据用户画像数据对数据进行实时过滤,在线过滤增加了链路下发的耗时。为了提升链路的吞储量,我们对每一类lo操作做了一个类对外暴露,一个单等L请求接口,外部调用该接口后,将请求加入一个异步队列,同时开始等待结果的返回,这样该列IO请求都会在该异步队列里进行了汇聚。这样对上层而言,看到的还是单个的同步IO接口,上层业务逻辑、开发流程无需做改造,底层其实已经自动做了IO的批量聚合,显著提升了链路吞吐量。
03:10
对链路发送进行调度,链路优先保障热点突发push的发送,同一个push任务对用户推送顺序也做了排序。新架构对于推送任务shing做了优化,在一致性哈希列基础上,每个节点计算出4个固定的backup,当某节点的失败率或处理耗时超过一定阈值时,将该节点的流量均匀低分给他的backup。通过这种方式就支持单节点异常时的自动故障恢复。构建了接口自动化回归测试流程,构建了自动化D测试流程。星push式应用成本显著降低,迫使链路性能、吞吐量显著提升,热点突发,全国快速push全链路后时下降明显,提升了push点击效果,稳定性良好。Push式链路主要重构完成后,Push链路稳定性质量明显提升。
04:10
2025年2月以后零故障。
我来说两句