[BIZ] - 1.金融交易系统特点

news2025/1/16 20:13:57

1. 典型数据汇总

数据

说明

新增数据量(条/天)

Qps(条/s)

消息大小(Byte)

实时性

可丢失性

可恢复性

实时行情

1.使用场景:交易,报价,策略验证;

2.冷热分离:彭博行情/其他行情;黄金&期货行情/固守行情

5亿

3万

1.5K

< 5ms

< 5%

N

风控数据

容易造成BigKey问题

数据事后风控

500万

3万

50K

分钟级别

可丢失

N

监控数据

数据种类:

1.中间件监控

2.应用监控

10亿

5万

215

亚分钟级别

可丢失

N

excel报价数据

做市报价

3亿

2万

3M

亚秒

可丢失

N

订单数据

含做市

1千万

1万

1.5K

< 3ms

不可丢失

Y

权限数据

权限控制粒度小

容易造成HotKey问题

1千万5万215< 1ms不可丢失Y

    通过上表,我们可以知道,金融交易系统的数据具有以下特点:高性能,高并发,数据量极大...

2. 海量数据

    交易系统的数据量特大,主要来自以下几种类型的数据。

2.1 行情

    行情是交易系统最为重要的数据,交易就是在不断变化的行情中寻找时机来实现盈利的。海量的行情主要分成两种,一种是tick数据(也叫逐笔行情),例如彭博行情数据,它会将每一笔交易的行情都发布出来,这种数据量巨大,一天就有4亿多条数据;另一种是每隔500ms发布一次行情,这种相对来说数据量少很多,一天大概1亿条左右。再加上各家公司会根据需求对行情进行进一步的加工,如聚合多种行情形成的聚合行情。数据量一天就会达到5亿多条。   

2.2 报价

    作为做市商,需要根据行情,通过一定的算法(如跟随当前行情报价、根据设定的差值及当前行情报价,根据行情计算曲线,然后报价)对外报价。报价数据一天的数据量能达到3亿条。

2.3 监控

    监控数据主要包括中间件的监控数据,服务实例的内存和CPU监控数据等,数据量和QPS非常高。一天的数据量能达到10亿条,在进行监控图标展示时,必须进行采样处理。

3. 高并发

3.1 行情

    对于行情而言,QPS基本保持在3万/s以上,高峰时段(国内交易时间9:00 - 11:30左右,国外交易时间21:.00 - 23:00)的QPS能达到3万/s。

3.2 权限

    对于交易高峰时段(手动单,电子单,做市,量化),会造成权限数据的访问频繁达到5万/s。主要是读高峰,权限写操作比较少,而且一般在开始交易前就已经完成。

3.3 监控

    监控数据的峰值能达到5万/s,主要是写操作并发高。

3.4 风控

    风控数据分成两种,一种是partial batch,数据量少,时间间隔短,例如每10s计算一次;另一种是full batch,会根据当前行情全量计算一次所有产品的风控指标数据,例如每30min计算一次。由于full batch的计算量大,而且希望结果能够一次性给到交易员查看,议事交易员能够看到不同产品的统一切面数据,导致风控数据的瞬间并发值特别高,达到3万/s。

3.5 报价

    由于做市交易和量化交易的存在,导致报价数据量特别大,峰值能够达到2万/s。

3.6 订单

    交易方式的多样化,如手工单,电子单,做市交易以及量化交易,再加上订单策略,如冰山策略等,导致订单的并发量在高峰时可以达到1万/s。

4. 高性能

    交易系统的高性能主要体现在延时性上。

4.1 行情

4.1.1 实时行情

    实时行情分量两大类,一类是当前会进行交易的产品行情数据,另一类是计划以后会进行交易,当前只是用于策略测试的行情数据。

    对于会进行交易的产品行情数据,要求交易所或数据商的数据进入交易系统后,必须在3ms以内推送到各个下游服务(其实,订阅方根据业务逻辑也会对延时有不同的要求,可以进一步细分,依次来降低MQ的压力,这些待MQ的章节进行介绍)。

    对于当前只是用于策略测试的行情数据,对于行情的延时没有太大的要求,一般卡在亚分钟级别即可。

    行情数据的流向图见下图:

    行情的延时是从行情数据进入行情接入服务后开始计算,行情接入服务接收到交易所推送的行情后,需要将行情进行加工和包装,让其符合内部的使用场景,例如数据校验、与对应的市场参考数据匹配、与其他行情数据进行聚合、填充必要标识...,最后封装成统一的对象供下游使用。

    行情接入服务处理完毕之后,将行情发布到MQ,由MQ推送给下游的各个订阅服务。

    整个交易系统的内部网络环境如下:内部的网络延时大概是在50us,带宽是万兆网。延时要求小于5ms。从消息进入行情接入服务开始计算,至消息进入下游订阅服务为止。耗时主要发生在行情的接入服务,以及消息在MQ中的主从复制和消息路由。

    行情数据对延时的要求还一定程度上受交易品种的影响,例如,对于黄金和期货产品而言,由于玩家较多,行情数据的延时对成交影响很多,要求延时在3ms以内;而对于固收类产品,由于玩家少,行情数据的延时对成交的影响也弱的多,可以将延时放宽到5ms。

4.1.2 历史行情

    历史行情主要用于策略研究和曲线拟合。两种业务场景都只要求近三年的数据,因此三年之前的数据可以直接进行存档。对于三年内的数据,曲线拟合要求数据延时在30s以内,而策略研究,通常没有太大的限制,只要不导致请求超时即可,我们常按照分钟级别的要求进行设置。

4.2 订单

    交易所通常按照价格优先,时间优先的规则进行撮合,因此订单早一刻到达交易所,成交的概率就更大。

    订单的延时从订单生成时刻起算,直到将交易所ack为止。这中间主要经历订单校验、权限检查、风控检查、策略拆单、订单路由等步骤,然后由外联系统将订单发送到交易所。整个过程的耗时不可超过3ms。

    其实,订单还可以分类,例如指定交易对手方的交易,通常对延时不太敏感;对于RTF/RFQ模式的交易,对延时也要求不高。

4.3 权限

    由于订单的下发处理过程中,首先就是要做权限校验,因此系统对权限的延时i性能要求更高,一般权限的延时不能超过1ms。

    同时权限有一些自身的特点,例如并发性极高,因此,一定要区分不同场景对权限延时的要求,区分对待。

5. 高可用

    金融交易系统:稳是第一要务,稳是第一要务,稳是第一要务。

    为了提高可用性,金融行业的一个惯例做法是每周重启系统,并不是对可用性没有要求,而正是为了在交易时间段不出现不可用状态。

    而且需要避免单节点故障,搭建同城双活,异地多活架构。

6. 消息体大

    小的消息在几百个字节,大的数据可以达到3-5M。大消息体的消息会对序列化、网络传输、数据落盘产生非常大的影响。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查

文章目录 ⭐前言⭐ 功能设计与实现💖 node后端操作数据库实现增删改查💖 vue3前端实现增删改查⭐ 效果⭐ 总结⭐ 结束⭐结束⭐前言 大家好,我是yma16,本文分享关于 node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查。 技术选型 前端:vite+vue3+antd 后端:…

编程语言的实际应用场景(C语言场景)

从应用范围上来说&#xff0c;这些编程语言大致可以分为两种&#xff1a; 一种是专用型语言&#xff0c;也就是针对某个特定领域而设计出来的语言&#xff1b;另一种是通用型语言&#xff0c;它们可以开发多种类型的应用程序&#xff0c;而不是局限在某个特定的领域。 专用型…

[职场] 投资顾问是做什么? #知识分享#其他#微信

投资顾问是做什么&#xff1f; 投资顾问是指专门从事于提供投资建议而获薪酬的人士&#xff0c;它是投资服务中非常重要的角色。投资顾问&#xff0c;有广义和狭义之分。广义的投资顾问&#xff0c;可以是指为金融投资、房地产投资、商品投资等各类投资领域提供专业建议的专业人…

UI文件原理

使用UI文件创建界面很轻松很便捷&#xff0c;他的原理就是每次我们保存UI文件的时候&#xff0c;QtCreator就自动帮我们将UI文件翻译成C的图形界面创建代码。可以通过以下步骤查看代码 到工程编译目录&#xff0c;一般就是工程同级目录下会生成另一个编译目录&#xff0c;会找到…

QT 工具栏 状态栏 停靠部件 核心部件

添加/删除工具栏 删除工具栏方法和删除菜单栏方法一样&#xff0c;不过工具栏可以有多个&#xff0c;所以每次右键MainWindow对象&#xff0c;都可以看到添加工具栏的选项。 工具栏添加动作 新添加的QAction对象会在动作编辑器里找到&#xff08;Action Editor&#xff09;&a…

算法之贪心

1.部分背包问题 代码1&#xff1a; 代码2&#xff1a; 但如果金币不能分割&#xff0c;那贪心就不是最优解&#xff0c;正确的做法是搜索或动态规划。 2.排队接水 3.在规定时间内参加最多的比赛 4.合并果子 使用memset初始化int数组时&#xff0c;第二个参数如果是0&#xff0…

vscode运行C/C++时候cmd.exe界面显示

写了一些命令行传参的程序&#xff0c;需要终端输入参数&#xff0c;默认是输出结果显示在它自己的终端界面 Code-runner: Run In Terminal 打勾就行 效果&#xff1a;

平时积累的FPGA知识点(6)

平时在FPGA群聊等积累的FPGA知识点&#xff0c;第六期&#xff1a; 1 万兆网接口&#xff0c;发三十万包&#xff0c;会出现掉几包的情况&#xff0c;为什么&#xff1f; 原因&#xff1a;没做时钟约束&#xff0c;万兆网接口的实现&#xff0c;本质上都是高速serdes&#xf…

Vue源码系列讲解——模板编译篇【二】(整体运行流程)

目录 1. 整体流程 2. 回到源码 3. 总结 1. 整体流程 上篇文章中我们说了&#xff0c;在模板解析阶段主要做的工作是把用户在<template></template>标签内写的模板使用正则等方式解析成抽象语法树&#xff08;AST&#xff09;。而这一阶段在源码中对应解析器&…

跟着pink老师前端入门教程-day26

一、计算机编程基础 &#xff08;一&#xff09;编程语言 1、编程 编程&#xff1a;就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码&#xff0c;并最终得到结果的过程。 计算机程序&#xff1a;就是计算机所执行的一系列的指令集合&#xff0c;而程序全部…

黑色响应式全屏滚动主页源码

html5黑色大气的个人博客全屏滚动个人主页源码下载&#xff0c;右键记事本即可修改。HTMLJSCSS https://wfr.lanzout.com/iFmRe1o7csyh

蓝桥杯电子类单片机提升二——串口发送与接收

目录 单片机资源数据包_2023 一、串口收发数据的介绍 1.波特率&#xff08;Baud Rate&#xff09; 2.帧格式 3.SBUF寄存器&#xff08;Serial Buffer&#xff09; 4.中断处理 二、如何从stc-isp获取串口收发数据的代码 1.代码的获取 2.代码的修改 1&#xff09;第一步…

打字侠网站,提供免费的双拼打字练习

在当今信息时代&#xff0c;电脑已成为人们生活、学习和工作不可或缺的一部分。随着电脑的普及和广泛应用&#xff0c;打字成了一项必备的技能&#xff0c;尤其是对于从事编程和写作等工作的人来说甚至更为重要。而要想提高打字速度和准确度&#xff0c;良好的打字练习是必不可…

Flink理论—容错之状态

Flink理论—容错之状态 在 Flink 的框架中&#xff0c;进行有状态的计算是 Flink 最重要的特性之一。所谓的状态&#xff0c;其实指的是 Flink 程序的中间计算结果。Flink 支持了不同类型的状态&#xff0c;并且针对状态的持久化还提供了专门的机制和状态管理器。 Flink 使用…

Linux第55步_根文件系统第2步_测试使用busybox生成的根文件系统

测试使用busybox生成的根文件系统。测试内容较多&#xff0c;很杂。 1、修改“nfs-kernel-server” 1)、打开终端 输入“sudo vi /etc/default/nfs-kernel-server回车”&#xff0c;打开“nfs-kernel-server”文件。 输入密码“123456回车” 见下图&#xff1a; 2)、在最后…

模拟电子技术——基本放大电路

文章目录 前言一、三极管输入输出特性三极管放大作用三极管电流放大关系三极管的特性曲线 二、基本放大电路-电路结构与工作原理基本放大电路的构成基本放大电路放大原理三种基本放大电路比较 三、基本放大电路静态工作点什么是静态工作点&#xff1f;静态工作点的作用估算法分…

OpenCV Mat实例详解 一

OpenCV中的Mat是一个类&#xff0c;它用存储图像信息。由两部分数据组成&#xff1a;矩阵头和像素值矩阵。矩阵头包含矩阵尺寸、存储方法、存储地址等信息&#xff0c;而像素值矩阵则存储实际的像素值数据。 Mat类在OpenCV中有十分重要的作用&#xff0c;图像信息的载入、保存、…

2024 CKS 题库 | 6、创建 Secret

不等更新题库 CKS 题库 6、创建 Secret Task 在 namespace istio-system 中获取名为 db1-test 的现有 secret 的内容 将 username 字段存储在名为 /cks/sec/user.txt 的文件中&#xff0c;并将password 字段存储在名为 /cks/sec/pass.txt 的文件中。 注意&#xff1a;你必须创…

ubuntu22.04@laptop OpenCV Get Started: 009_image_thresholding

ubuntu22.04laptop OpenCV Get Started: 009_image_thresholding 1. 源由2. image_thresholding应用Demo2.1 C应用Demo2.2 Python应用Demo 3. 重点分析3.1 Binary Thresholding ( THRESH_BINARY )3.2 Inverse-Binary Thresholding ( THRESH_BINARY_INV )3.3 Truncate Threshold…

【AIGC】Stable Diffusion的采样器入门

在 Stable Diffusion 中&#xff0c;采样器&#xff08;Sampler&#xff09;是指用于生成图像的一种技术或方法&#xff0c;它决定了模型如何从潜在空间中抽样并生成图像。采样器在生成图像的过程中起着重要作用&#xff0c;影响着生成图像的多样性、质量和创造性。以下是对 St…