多业务线亿级体量,携程是怎么做账务中台的(1)

简介: 多业务线亿级体量,携程是怎么做账务中台的


本文为联合撰文,作者团队负责携程集团支付账务系统、消费金融账务系统、清结算和对账等工作的的开发、设计和运维工作。


   

01


   

前言


原先携程内部的各账务系统都是随着自身的业务发展而建立起来的,其中有些共同的东西,但也存在着不少差异。但其对底层业务的抽象是统一的,都可以抽象为:账户开立、记账、稽核。为了系统开发、运维的简便性,也为了更好的为前台业务提供支持,我们计划实施账务中台系统,从而做到账务系统的:

1)敏捷:快速的适应业务需求的变化,满足外部快速变化的需求,实现业务的敏捷。2)解耦:建立功能独立的系统,避免因为一个功能的修改而影响很多方面,降低功能的耦合度。3)复用:对一些公共组件的复用,提高开发效率,避免重复建设,使得数据和流程都可以得到管控。

 

   

02


   

账务中台之路-基础篇


1、系统概述


1)背景


账务系统从2014年开始一期建设,先后经历了两次大的技术架构升级。

一期:

账务组刚成立的时候,携程的JAVA技术栈尚未完善。

技术上我们是首批试点使用JAVA的小组,使用的分布式RPC框架是Zeroc ICE,它可以支持多语言,通过slice文件生成代码,性能也比较好,所以当初选型用了这个。消息队列用的RABBITMQ,缓存用的REDIS。这些集群都是自运维的。

业务上,一期的业务只支持单用户单账户的模式,交易支持充值、支付、退款、预授权类(预授权冻结,预授权撤销,预授权完成,预授权完成撤销)、提现、转账,接口都是基于业务接口独自开发的。
系统业务架构图如下:


二期:


随着携程JAVA技术栈的完善,二期主要针对JAVA技术栈进行了升级,放弃了自运维的集群,使用了携程JAVA体系,包括SOA,qconfig,qmq,qshecdule等技术。业务上增加了会计系统和日终的实现。


系统业务架构图如下:


原有的账务核心系统存在以下问题:

1)抽象不足:对业务规则抽象不够,如果新增业务需要编码实现2)隔离不够:系统不同业务的系统流量、数据没有隔离,存在某一业务有问题,影响全局的风险3)降级策略:不支持4)扩容困难

基于以上问题,我们设计并实现了新的统一账务平台。

2)目标


针对旧系统的不足,我们确定统一账务平台的目标:

1)抽象2)隔离3)易扩容4)配置化5)支持多机构多币种

2、系统架构与简介

统一账务系统旨在建立一套立足于携程集团之下的高可用,易扩展,业务可定制的账务系统。系统包括场景码系统,账务前置系统,账务核心系统,账户管理系统,会计系统,异步系统,job系统,日志系统。各个系统之间通过dubbo进行服务拆分解耦。

系统业务架构图如下:

  • 前置系统:账务的业务处理系统,主要负责对上游业务系统的对接,完整账户的拆分等工作。
  • 账务核心系统(原子系统):主要负责账户记账,记录对商户、用户、内部户等客户账的动账及明细。
  • 管理系统:对外提供商户、用户、内部户的管理服务,包括创建、查询、状态冻结、状态解冻等服务。
  • 会计系统:采用复式记账法根据分录规则对发生的交易进行记录,来表示资金的流转。
  • 基础服务系统:对外提供科目、分录、交易码等基础配置的查询服务。
  • 日终系统:对记账原子和会计系统数据进行稽核,完成数据校验工作。




相关文章
|
存储 传感器 定位技术
【NI Multisim 14.0原理图设计基础——元器件分类】
一、元器件分类 NI Multisim 14.0不仅提供了数量众多的元器件符号图形,而且还设计了元器件的模型,并分门类地存储在各个元器件库中。下面按照元器件库的命名不同详细介绍常用的元器件。 1.电源库 单击“元器件”工具栏中的“放置源” 按钮,Sources 库的“系列”栏包括以下几种,如图所示: 电源(POWER-SOURCES):包括常用的交直流电源、数字地、地线、星形或三角形连接的三相电源、VCC、VDD、VEE、VSS 电压源,其元器件”栏下内容如图所示: 电压信号源(SIGNAL-VOLTAG…):包括交流电压、时钟电压、脉冲电压、指数电压、FM、AM等多种形式的电压信号,其“元器
20784 3
【NI Multisim 14.0原理图设计基础——元器件分类】
|
消息中间件 JavaScript 小程序
面试官:你了解 QPS、TPS、RT、吞吐量 这些高并发性能指标吗?
面试官:你了解 QPS、TPS、RT、吞吐量 这些高并发性能指标吗?
|
机器学习/深度学习 自然语言处理 算法
浅述几种文本和图像数据增强的方法
在现实场景中,我们往往收集不到太多的数据,那么为了扩大数据集,可以采用数据增强手段来增加样本,那么平常我们应该怎么做数据增强的呢? 什么是数据增强 数据增强也叫数据扩增,意思是在不实质性的增加数据的情况下,让有限的数据产生等价于更多数据的价值。
|
Linux Docker 容器
Docker 容器抓包说明
正常情况下,操作系统层面可以通过 tcpdump 来抓包。但对于容器环境,根据所使用的 base 镜像的不同,容器内不一定含有抓包工具,所以无法直接抓包。本文简要介绍如何通过 ```nsenter``` 工具来对容器快速抓包。 # nsenter 工具介绍 nsenter 包含在绝大部分 Linux 发行版预置的 util-linux 工具包中。它可以进入指定进程的关联命名空间。包
9489 0
|
存储 关系型数据库 MySQL
客户说|乐檬零售引入PolarDB:查询性能百倍提升,稳定支撑超10万家门店
客户说|乐檬零售引入PolarDB:查询性能百倍提升,稳定支撑超10万家门店
606 2
客户说|乐檬零售引入PolarDB:查询性能百倍提升,稳定支撑超10万家门店
|
存储 设计模式 监控
快速定位并优化CPU 与 JVM 内存性能瓶颈
本文介绍了 Java 应用常见的 CPU & JVM 内存热点原因及优化思路。
1280 166
|
Swift
DeepSeek开源Janus-Pro多模态理解生成模型,魔搭社区推理、微调最佳实践
DeepSeek开源Janus-Pro多模态理解生成模型,魔搭社区推理、微调最佳实践
702 1
|
人工智能 监控 安全
从 DeepSeek 敏感信息泄露谈可观测系统的数据安全预防
探讨了 SLS 中增强数据安全的几种方式:权限精细化管控有效减少了潜在安全风险;接入层脱敏技术阻止敏感数据落库,提升了隐私保护;StoreView 字段集控制通过限制查询数据范围,降低数据泄露损害。智能监控系统提供实时监测,快速识别并阻断异常拖库行为,为企业提供了迅速响应和抵御威胁的能力。
|
机器学习/深度学习 编解码 人工智能
魔搭社区模型速递(3.2-3.8)
🙋魔搭ModelScope本期社区进展:1340个模型,220个数据集,🎨91个创新应用,📄 8篇内容
955 9
超好用的截图软件Snipaste(包含安装包)、如何设置Snipaste开机自启
这篇文章提供了Snipaste截图软件的介绍,包括它的功能、如何下载和安装,以及如何设置开机自启动的详细步骤。

热门文章

最新文章