蚂蚁--- 香港存款月结单百万级重构 系分

一:需求背景

1.1: 背景

随着香港银行极简开户,个人活期多币种,钱包用户引流等业务越来越多;香港银行存款客户数,账户数,交易数,均在今年快速增长,未来也会加快增长。

1.2: 存在的问题

账单中心存储月结单生成目前面临着较大的系统压力,安全隐患以及人工保障成本,其使用的跑批架构已不再适用于当前实际的业务发展阶段,迫切需要对月结单的跑批流程从底层根本的架构上进行重构设计,建设支持百万级客户的全新存款月结单链路。

1.3: 目标

建设一套多站点可复用的,并且香港存款月结单重构链路,将作为这套账单统一调度引擎的首个落地对象。将复用到多个站点。

1.4: 存在问题和挑战

问题:

1: 目前月结单都是按照单笔执行逻辑进行处理,导致每次生成月结单都要和DB进行交互,影响了月结单生产的效率。(性能问题)

2:月结单生成分为数据收集补充,pdf生成,消息通知三个阶段,耦合度极高。(扩展问题)

3:耦合度高导致无法独立修改进行,会DB交互

1.5: 目标

业务目标:(主要实现的功能点和效果)

绝对目标: 

香港存款月结单生成 支持百万级文件量的全部存款月结单品种在 每月初一天24小时内完成;

(个人客户约50个,个人活期月结单和个人存款宝月结单约50万份)

(企业客户数不超过1万个)

目前最近一次月结单生成 是26万份左右,6小时完成;

相对目标:

  香港存款月结单生成提升为原来的10倍,4800/小时 到 4.8万份文件/小时

 

系统目标:

 1: 解耦

  解耦香港存款月结单的各个子品种,使得 个人活期存款月结单,个人存款宝月结单,企业活期存款月结单,都作为各自独立,互不影响,可自定义调度控制的任务;

  解耦存款月结单的三个技术阶段,使得每个子品种存款月结单的一阶段数据准备,二阶段文件生成,三阶段对客通知,都各自独立,互不影响;

  

 2: 优化

  将原来根据存款账户维度生成月结单的模式,优化为按照用户文件维度生成。

  将原来单次调度执行单个账号的模式,优化为单次调度批量执行多个用户文件

  支持月结单指定规则跑批,包括圈人生成,历史月结单重新生成,多维度独立速率控制调度

3:提升月结单跑批性能,尽量减少存款月结单生成过程,对外部系统的RPC调用次数及对DB的调用次数
  1.   外汇实时换算接口,改为接入外汇SDK在月结单生成首次时,把获取到的汇率加载到缓存中,缓存有效期24小时,月结单生成时使用SDK在内存中进行汇率换算即可。
  2.   对客通知发沟通,改为调用沟通平台批量发送接口,每次发送1000个用户即可。
  3.   去除对于存款的调用,改为依赖账单本身数据库中的数据即可
  4.   月结单跑批过程中,对于账单本身数据库sql的增删改查操作,都尽量使用批量sql, 一次操作100个用户
  5.    “于乘上结余的获取,不再月结单跑批过程中实时进行DB查询,改为在月结单账户回流表中新增一个承上结余字段,在月结单跑批前,就用一个单独的定时任务,获取并填入承上结余。月结单跑批时取回流表数据则可天然获得对应账号的承上结余。
  6.   对于交易数量为0的账号,不再sql去查数据库交易回流表,目前有交易的账号大约只占总账号的十分之一。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/592261.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AGI要闻:斯坦福李飞飞首次创业,瞄准“空间智能”;OpenAI下周发布搜索产品挑战谷歌;新的开源 AI 眼镜来了|钛媒体AGI | 最新快讯

多方消息证实,OpenAI将会在北京时间5月10日(周五)凌晨2点公布搜索引擎新产品消息。 斯坦福大学首位红杉讲席教授 李飞飞 通用人工智能(AGI)领域又公布了一系列重磅消息。 5月4日凌晨,据路透社&#xff0c…

etcd源码流程---调试环境的搭建

etcd启动命令: name必须设置,否则会用default,集群内不同etcd实例的名字应该是唯一的,因为他会有一个map(name->ip)。如果initial-cluster-state设置为new,那么他会创建一个新的clusterid。需要在initial-cluster中…

算法课程笔记——蓝桥云课第六次直播

(只有一个数,或者因子只有一个)先自己打表,找找规律函数就是2的n次方 异或前缀和 相等就抵消 先前缀和再二分

离散数学之命题逻辑思维导图+大纲笔记(预习、期末复习,考研,)

大纲笔记: 命题逻辑的基本概念 命题与联结词 命题 命题是推理的基本单位 真命题,假命题 特征 陈述句 唯一的真值 是非真即假的陈述句 非命题 疑问句 祈使句 可真可假 悖论 模糊性 三个基本概念 复合命题 真值取决于原子命题的值和逻辑联结词 原子命题 逻…

树莓派-服务自启配置方式测试

测试脚本: 一、 向rc.local文件添加启动代码(未找到,不测试) 修改/etc/rc.local文件,在文件中exit 0之前添加代码在启动时都会被执行,如:su pi -c “exec /home/pi/testboot.sh” 其中:su pi表示切换至pi…

PR2019新建项目教程

一,新建项目: 设置工程名称,选择工程目录位置,其他默认: 二,新建序列 新建项->序列: 设置序列参数: 三,导出设置 设置导出参数:

C语言 | Leetcode C语言题解之第64题最小路径和

题目&#xff1a; 题解&#xff1a; int minPathSum(int** grid, int gridSize, int* gridColSize) {int rows gridSize, columns gridColSize[0];if (rows 0 || columns 0) {return 0;}int dp[rows][columns];dp[0][0] grid[0][0];for (int i 1; i < rows; i) {dp[i…

【Linux】搭建私有yum仓库(类阿里云)

在搭建本地yum仓库并配置国内镜像阿里云源中了解yum源 yum &#xff1a; Yellow dog Updater&#xff0c;Modified&#xff0c;是一种基于rpm包的自动升级和软件包管理工具。yum能从指定的服务器自动下载rpm包并安装&#xff0c;自动计算出程序之间的依赖关系和软件安装的步骤&…

AST原理(反混淆)

一、AST原理 jscode var a "\u0068\u0065\u006c\u006c\u006f\u002c\u0041\u0053\u0054";在上述代码中&#xff0c;a 是一个变量&#xff0c;它被赋值为一个由 Unicode 转义序列组成的字符串。Unicode 转义序列在 JavaScript 中以 \u 开头&#xff0c;后跟四个十六进…

【Linux入门】基础开发工具

本篇博客整理了Linux&#xff08;centOS版本&#xff09;中基础开发工具的用途和用法&#xff0c;旨在透过开发工具的使用&#xff0c;帮助读者更好地理解可执行程序的编写、编译、运行等。 目录 一、软件包管理器 yum 1.软件的下载与安装 2.Linux应用商店&#xff1a;yum …

【JAVA项目】基于SSM的【寝室管理系统设计】

技术简介&#xff1a;采用B/S架构、ssm 框架和 java 开发的 Web 框架&#xff0c; eclipse开发工具。 系统简介&#xff1a;寝室管理设计的主要使用者分为管理员、宿舍长和学生&#xff0c;实现功能包括管理员权限&#xff1a;首页、个人中心、学生管理、宿舍号管理、宿舍长管理…

使用快捷键的方式把多个关键字文本快速替换(快速替换AE脚本代码)

首先&#xff0c;需要用到的这个工具&#xff1a; 度娘网盘 提取码&#xff1a;qwu2 蓝奏云 提取码&#xff1a;2r1z 这里做AE(Adobe After Effact)里的脚本规则&#xff0c;把英文替换成中文&#xff0c;如下 swap thisComp.layer(“Segment settings”).effect("%&…

谷歌免费的机器学习课程

虽然这样的课程收藏了不少&#xff0c;但是很少有看的下去的&#xff0c;可能我就是这样的收藏党吧。 具体可以跳转链接查看 机器学习工程师学习路径

Springboot(SSM)项目实现数据脱敏

目录 一、引入hutool的依赖 二、sql脚本 三、自定义注解代码 3.1 自定义注解 3.2 自定义一个枚举,用于定义脱敏的类型 3.3 序列化 四、使用脱敏注解 4.1 Person.java 4.2 controller 4.3 dao 五、源代码参考 一、引入hutool的依赖 <dependency><groupId>…

皮内针可以治腱鞘炎吗?如何用皮内针治疗腱鞘炎?

点击文末领取揿针的视频教程跟直播讲解 腕部腱鞘炎是什么&#xff1f; 腱鞘是近关节处的半圆形结构&#xff0c;环形包绕肌腱组织&#xff0c;起到固定肌腱的作用。当关节活动时&#xff0c;肌腱与腱鞘之间会产生相互摩擦&#xff0c;如果两者摩擦过度就会引起炎症&#xff0…

时间复杂度空间复杂度 力扣:转轮数组,消失的数字

1. 算法效率 如何衡量一个算法的好坏&#xff1f;一般是从时间和空间的维度来讨论复杂度&#xff0c;但是现在由于计算机行业发展迅速&#xff0c;所以现在并不怎么在乎空间复杂度了下面例子中&#xff0c;斐波那契看上去很简洁&#xff0c;但是复杂度未必如此 long long Fib…

基于改进暗原色先验和颜色校正的水下图像增强,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

【OpenNJet下一代云原生之旅】

OpenNJet下一代云原生之旅 1、OpenNJet的定义OpenNJet架构图 2、OpenNJet的特点性能无损动态配置灵活的CoPilot框架支持HTTP/3支持国密企业级应用高效安全 3、OpenNJet的功能特性4、OpenNJet的安装使用编译安装配置yum源创建符号连接修改配置编译 5、通过 OpenNJet 部署 WEB SE…

数字化战略|数字化建设总体规划蓝图PPT(建议收藏)

摘要 这份头部咨询公司关于数字化转型的报告为企业管理者和技术人员提供了一份详尽的数字化转型指南。报告从战略出发&#xff0c;详细阐述了数字生态体系建设、数字化核心方案构建、管理协同能力提升以及数据集中管理和应用能力增强等关键环节。对于从业者而言&#xff0c;报…

CogVLM/CogAgent环境搭建推理测试

引子 对于多模态大语言模型&#xff0c;一直没有怎么接触。刚巧一朋友有问到这方面的问题&#xff0c;也就顺手调研下。智谱AI的东西一直以来&#xff0c;还是很不错的。ChatGLM的忠实fans&#xff0c;看到白嫖网站github上有他们开源的多模态CogVLM/CogAgent&#xff0c;那就…
最新文章