FiT 基于 Pulsar 在金融在线高并发场景的最佳实践
关于 FiT
腾讯金融科技(Tencent Financial Technology)是腾讯公司提供移动支付与金融服务的综合业务平台。业务领域包括移动支付、投资理财、民生服务和国际化等,作为支付业务的基石和底座,FiT 致力于建设和发展完善的支付平台能力,在微信支付、QQ 钱包等移动支付产品中持续进行功能和服务创新。
FiT 在日常的交易流程中,如信用卡、话费充值、自选股等业务中,需要通过消息中间件来实现上游和下游衔接,以实现广播、过滤、延迟推送等场景。同时由于 FiT 均是交易类场景,对消息产品的高并发、容灾有非常高的要求。比如,在可预期的业务高峰期时,对消息队列集群进行快速扩容;在非预期的可用区故障时,其余可用区可以正常提供服务,保障交易业务的流畅性。于是 TDMQ Pulsar 进入了 FiT 的消息队列技术选型范畴。
TDMQ Pulsar 由于其存算分离的架构,对于计算密集型的业务场景,仅需要添加计算层 Broker ,自动进行 Rebalance;对于海量消息堆积,存储不足时,添加新的 BK 节点即可。在容灾支撑方面,TDMQ Pulsar 专业集群支持 3AZ 跨可用区部署,以确保发生可用区故障时,也能正常提供服务;同时还提供了跨地域冷备功能,支持快速切换接入点解析,实现无需客户端修改接入点地址,而实现跨地域的容灾方案,保障业务的延续性。在场景支撑方面,TDMQ Pulsar 承载了腾讯计费、中国银行等金融场景下的核心交易链路。从各方面来说,都非常匹配 FiT 的需求。
关于 TDMQ Pulsar
腾讯云消息队列 Pulsar 版是基于 Apache Pulsar 自研的消息中间件,具备极好的云原生和 Serverless 特性,计算存储分离的架构使其在扩缩容方面具备良好的底层优势。
在完全兼容社区版的基础上,消息队列 Pulsar 版还提供了重试&死信队列、消息标签过滤、消息轨迹等高级特性。
目前消息队列 Pulsar 版已经有较大规模的应用,如王者荣耀、猫眼、微民保险、QQ 音乐、领星、长安汽车等,以及包括腾讯计费绝大部分场景,包括支付主路径、实时对账、实时监控、大数据实时分析等方面。
FiT 基于 Pulsar 的消息中间件实践
标准模型-发布订阅
第一类使用场景,是标准的 pub - sub 模式,生产者生产一条消息,任意一个消费者成功消费即可。在部署方面,客户端的生产者和消费者均解耦部署。
限定模型-消息标签过滤+自动创建订阅
第二类场景,限定模型,是使用了 TAG 消息过滤的方式,限定消息只能在某一个客户端消费。
FiT 采用单元化(SET)架构。在该场景中的业务消息,会按照一定的规则(如 UIN 等)进行分片,并要求消息限定在某个目标 SET 中消费。
如上图所示,SET 1 中生产者生产消息时,给消息打上「SET 1」的 TAG;消费时,仅消费有「SET 1」TAG 的消息。另外,Pulsar 可以支持自动创建订阅,FiT 使用该能力实现了一套插件,将 SET 做为环境变量注入到启动容器中,这样实现方式极大的方便了业务自定义配置要消费的消息,仅需要调整环境变量即可,而不需要改动业务代码。
扩散模型
第三类场景,扩散模型。在消息生产消费比例为 1:N 时,需要将业务请求,异步「扩散」到其他的多个 SET 中。
基于自动创建订阅的功能,FiT 插件实现在同一个 Topic 下创建多个订阅,灵活的根据业务需求来定义下游消息的客户端。
消息(跨集群)复制
在消息容灾场景下,FiT 基于消息复制组件,配置消息复制关系,自动将消息复制到对端的 Pulsar 集群。同一个复制对象,在不同地域的两个集群中名称需要保持一致,包括 Topic 名称、角色名称及相应的密钥等。如此,可保障当其中一个地域发生故障时,通过接入层的流量调度,将流量调度至另外一个集群。
客户评价
FiT 架构师:
得益于 TDMQ Pulsar 高吞吐、低延迟的能力,FiT 金融产品业务迁移到 TDMQ Pulsar 后,消息从生产者到消费者的耗时缩短了大约80%,消息积压情况大大缓解,积压数量减少了70%。TDMQ Pulsar 延迟消息作用于消息维度,方便业务根据自身场景对每条消息设置不同的延时时间,如延迟通知、延迟核对等。TDMQ Pulsar 运维简单,业务高峰期需要集群扩容时,在控制台一键点击升配即可,业务层无感。TDMQ Pulsar 技术支持专业迅速,及时响应业务需求解决 FiT 业务场景的痛点,如支持接入外部监控、支持灵活的消息过滤功能,较好地支撑了 FiT 业务。
总结展望
下一步,FiT 金融产品业务将继续切量至 TDMQ Pulsar,预计 2024年基本完成迁移。并且 FiT 由于承载了微信支付、银行等国民级支付产品,计划在未来实现多个自建机房的条带化部署,届时 TDMQ Pulsar 也将属地化部署(私有化部署),并作为其交易业务的核心链路。
同时,TDMQ Pulsar 版将继续打磨产品能力,服务好包含 FiT 在内的广大用户,近期我们将推出以下新功能:
1. 接入外部监控 Prometheus:支持将专业集群的监控数据,接入自建的 Prometheus ,利于用户观测的同时,可以通过监控数据对业务 Workload HPA,使得线上运维更加自动化。
2. 消息标签过滤支持更灵活的表达式:提供更加灵活的消息标签过滤表达式配置,简化业务侧的架构设计和数据链路。
3. 更加丰富的应用观测指标:提供更多更丰富的集群性能观测指标,便于客户及时排除业务链路风险,准确定位异常位置。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一周涨 15k Star 的开源项目「GitHub 热点速览」
你训练大语言模型(LLM)用的什么框架?有没有想过不用框架训练 GPT-2? GitHub 上就有这么一位大神(Andrej Karpathy),他仅用大约 1k 行的 C 代码就完成了 GPT-2 模型的训练,代码纯手撸、不依赖任何机器学习框架,作者这么做仅仅是觉得很有趣。尽管这个项目(llm.c)的教学意义大于实用价值,但开源一周便收获了 15k Star,可见大家对他技术的认可和惊叹。 目光回到本周其他的开源热搜项目,在线的数据库设计工具 DrawDB 和程序员专属的在线工具集合 it-tools,它们方便快捷、点开就能用。Spring 框架也想要赶上 AI 潮流,推出了帮助开发 AI 应用的 Spring 框架 spring-ai,旨在简化开发 AI 应用的复杂度。开源的托管网站平台 Coolify,让你通过点点就能部署在线服务。看来不管是硬核的手撸框架,还是提供便利的工具,在 GitHub 上都是很受欢迎的。 本文目录 1. 开源新闻 1.1 Andrej Karpathy 的开源项目 2. 开源热搜项目 2.1 在线的数据库设计工具:DrawDB 2.2 帮助开发 AI 应...
- 下一篇
开源即时通讯应用 Tailchat v1.11.1 发布,插件化分布式 noIM 应用
介绍 Tailchat是一款插件化易拓展的开源 IM 应用。可拓展架构赋予Tailchat无限可能性。 前端微内核架构 + 后端微服务架构 使得Tailchat能够驾驭任何定制化 / 私有化的场景 面向企业与私域用户打造,高度自由的群组管理与定制化的面板展示可以让私域主能够更好的展示自己的作品,管理用户,打造自己的品牌与圈子。 官方网站:https://tailchat.msgbyte.com/ v1.11.1 更新内容 增加消息右键菜单 增加设置项允许关闭右键菜单 优化了在消息右键菜单中通过选中复制部分文本的逻辑 修复命令面板无法鼠标点击的问题
相关文章
文章评论
共有0条评论来说两句吧...