多业务线亿级体量,携程是怎么做账务中台的(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进行服务拆分解耦。

系统业务架构图如下:

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




相关文章
|
消息中间件 JavaScript 小程序
面试官:你了解 QPS、TPS、RT、吞吐量 这些高并发性能指标吗?
面试官:你了解 QPS、TPS、RT、吞吐量 这些高并发性能指标吗?
|
机器学习/深度学习 自然语言处理 算法
浅述几种文本和图像数据增强的方法
在现实场景中,我们往往收集不到太多的数据,那么为了扩大数据集,可以采用数据增强手段来增加样本,那么平常我们应该怎么做数据增强的呢? 什么是数据增强 数据增强也叫数据扩增,意思是在不实质性的增加数据的情况下,让有限的数据产生等价于更多数据的价值。
|
Linux Docker 容器
Docker 容器抓包说明
正常情况下,操作系统层面可以通过 tcpdump 来抓包。但对于容器环境,根据所使用的 base 镜像的不同,容器内不一定含有抓包工具,所以无法直接抓包。本文简要介绍如何通过 ```nsenter``` 工具来对容器快速抓包。 # nsenter 工具介绍 nsenter 包含在绝大部分 Linux 发行版预置的 util-linux 工具包中。它可以进入指定进程的关联命名空间。包
9323 0
|
存储 传感器 定位技术
【NI Multisim 14.0原理图设计基础——元器件分类】
一、元器件分类 NI Multisim 14.0不仅提供了数量众多的元器件符号图形,而且还设计了元器件的模型,并分门类地存储在各个元器件库中。下面按照元器件库的命名不同详细介绍常用的元器件。 1.电源库 单击“元器件”工具栏中的“放置源” 按钮,Sources 库的“系列”栏包括以下几种,如图所示: 电源(POWER-SOURCES):包括常用的交直流电源、数字地、地线、星形或三角形连接的三相电源、VCC、VDD、VEE、VSS 电压源,其元器件”栏下内容如图所示: 电压信号源(SIGNAL-VOLTAG…):包括交流电压、时钟电压、脉冲电压、指数电压、FM、AM等多种形式的电压信号,其“元器
19809 3
【NI Multisim 14.0原理图设计基础——元器件分类】
|
7月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2025 年 7 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。
|
12月前
|
存储 关系型数据库 MySQL
客户说|乐檬零售引入PolarDB:查询性能百倍提升,稳定支撑超10万家门店
客户说|乐檬零售引入PolarDB:查询性能百倍提升,稳定支撑超10万家门店
520 2
客户说|乐檬零售引入PolarDB:查询性能百倍提升,稳定支撑超10万家门店
|
11月前
|
机器学习/深度学习 编解码 人工智能
魔搭社区模型速递(3.2-3.8)
🙋魔搭ModelScope本期社区进展:1340个模型,220个数据集,🎨91个创新应用,📄 8篇内容
722 9
|
11月前
|
Swift
DeepSeek开源Janus-Pro多模态理解生成模型,魔搭社区推理、微调最佳实践
DeepSeek开源Janus-Pro多模态理解生成模型,魔搭社区推理、微调最佳实践
558 1
|
安全 测试技术 Linux
浅谈黑客赚钱黑产
浅谈黑客赚钱黑产
|
弹性计算 JSON 开发工具
"一键玩转阿里云ECS!Python大神揭秘:如何自动化创建镜像并跨地域复制,让你的云资源部署秒变高效达人!"
【8月更文挑战第14天】本文介绍如何使用Python与阿里云SDK自动化管理ECS镜像,包括创建镜像及跨地域复制,以优化云资源部署。首先安装`aliyun-python-sdk-ecs`并配置阿里云凭证。接着,通过Python脚本实现镜像创建与复制功能,简化日常运维工作并增强灾难恢复能力。注意权限及费用问题。
396 2