大数据时代证券核心交易系统架构演化

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1.
2. 大数据时代证券核心交易系统架构演化 上交所技术公司 刘凯
3. 目录 • 从马背到互联网:证券交易系统历史 • 上交所交易系统演进 • 证券交易系统架构的挑战 • 证券核心交易架构演化
4. 从马背到互联网:证券交易系统历史 • 证券交易所的诞生 • 问题 • 远洋贸易获利颇丰但是风险重重 • 如何分担风险共享利润? • 首个交易所的诞生 • 1613年, 阿姆斯特丹证券交易所 • 第一只证券东印度公司证券
5. 从马背到互联网:证券交易系统历史 交易与清算 订单与行情 市场信息 人工时代 纸张 自行车 信鸽/马队 电子与机械时代 纸张 机械风动管 电报/电话 计算机与网络 计算机 X.25网络 电话 互联网时代 计算机 Internet/广域网 Internet/广域网
6. 从马背到互联网:证券交易系统历史 • Stage1:分散式的区域交易所 • 通信不便,美国高峰期有数百家交易所运转 • Stage2:国家性的交易所 • 部分合并,部分退出,形成每个国家几家主要交易所 • Stage3:电子交易所的竞争 • 信息时代带来的是交易所门槛的降低,依托信息技术的电子化交 易所能够向传统巨无霸挑战 • 另类交易系统,场外电子市场ECN,电子化交易所 • Stage4:交易所之间的全球化竞争与合作 • 合并,互联
7. 上交所交易系统演进 • 1990年11月26日成立,同年12月19日正式营业
8. 上交所交易系统演进 第三代:分布式集群系统(2009.11-至今) 第二代:商用小型机系统(1992.12-2009.11) 第三代交易系统2009年11月23日上线,使用多主机并行 撮合,最高支持10万笔每秒,全天容量2.4亿笔订单。 第一代:局域网系统(1990.12-1992.12) 建立在集群系统上,通过分层部署在关键应用、主机以 及网络三个方面皆有冗余,满足容灾和可扩展需求,在 发生灾备切换时可保证订单数据“零丢失”。 第二代交易系统建立在商用小型机系统上,通过双向卫星 和光缆建成覆盖全国的通讯网络,支撑了“从上海到全国, 从场内到场外,从营业部到集中交易”的交易方式变革。 1990年11月26日成立,同年12月19日正式营业,是第 一个直接采用计算机撮合系统进行交易的新兴交易所。 • 基于Novell服务器的局域网络 • 每秒处理3笔业务,月处理成交2万笔 • 市场的委托、行情、成交回报等环节仍需要手工完 成 Novell主机更换为基于惠普小型机UNIX操作系统 每秒200笔,日处理能力200万笔 1993年,采用单向卫星广播行情,双向卫星接收报单 1997年和1999年进行了两次设备和应用的重大升级, 系统处理能力提高到每秒2万笔,日处理能力800万笔 • 后随着不断的扩容和改造,性能和容量不断被刷新 • • • •
9. 证券交易系统架构的挑战
10. 证券交易系统架构的挑战 高吞吐 § § 集中处理整个上海证券市场的证券交易 交易机会稍纵即逝,需要争抢 § § 一笔订单理论上可触发众多交易 数据传输和处理的集中突发是常态 § 未来需要支持30-50万笔每秒处理 § 挑战 串行交易/并行交易? § § 主机内并行/分布式并行? 并行交易时的 同步 一致性保证 分布式事务 实时灾备切换…
11. 证券交易系统架构的挑战 低时延 § § § 实时处理性能对证券业务至关重要 § 可预期性需求 § § 价格发现能力 市场状态的及时同步 目前普遍为单笔订单毫秒级延时 未来需要做到微秒级处理 挑战 § § 物理门槛:摩尔定律的失效 强校验机制 § § 100%安全性:备份的代价 处理的有序性和公平性
12. 证券交易系统架构的挑战 高可用 § § 是业务连续性保障,证券市场的关键 单个部件的可用性和整体可用性均需保 持高水平 § 两地三中心的布局要求 挑战 § 所有代码都有Bug?! § § 所有环节不许有单点隐患 灾备实时切换数据0丢失 § 关于安全与效率的平衡
13. 证券交易系统架构的挑战 灵活性 挑战 § § 业务支持的灵活性 升级部署的灵活性 § 业务模型的分析 § § 操控的灵活性 应急处理的灵活性 § § 底层架构的支持 数据结构的完善 § § 扩展的灵活性 全球化交易的灵活性 § 软件架构的可操作性
14. 大数据时代的特征
15. 证券核心交易架构演化-分布式架构 • 单体架构 • 分布式层级架构-可扩展 • 微服务 -可编排复用
16. 证券核心交易架构演化-分布式架构 • 选择 • 基于服务的架构 Vs 事件驱动的架构 • 事件驱动为主,兼顾基于服务 • 关键点 • Event Sourcing • CQRS 16
17. 证券核心交易架构演化-Event Sourcing&CQRS • Martin Fowler • 整个系统以事件为驱动,所有 业务都由事件驱动来完成。 • 系统的数据以事件为基础,事 件要保存在某种存储上。 • 业务数据只是一些由事件产生 的视图,是可重演的。
18. 证券核心交易架构演化-Event Sourcing&CQRS • 使用Event Sourcing进行节点灾备与恢复 • 依靠CQRS增加交易的性能 Order State Machine Master State Machine Slave State Machine Query Slave State Machine Slave
19. 证券核心交易架构演化-Exactly Once • 证券处理的特点 • 必须保证故障时数据处理 “Exactly Once” • 保证单节点处理的幂等性 • 分布式架构的整体故障恢复 • 可以考虑类似分布式快照机制 • 或者考虑逻辑时钟的应用
20. 证券核心交易架构演化-分布式事务 • 证券交易中的事务 • 本地事务 • 分布式事务 • 分布式事务的选择 • SAGA • TCC • 交易系统中的实现 • 每一阶段事务均为一个正常处理事件 • 事务编号在事件处理节点中传递 • 事务管理器
21. 证券核心交易架构演化-高可用设计 • 状态复制 结果复制,状态同步 共享磁盘复制 输入复制,执行重演 TCP复制 组播复制 • 灾备切换(共识的建立) 手工切换 CoroSync+DL M Paxos & Raft Zookeeper/etcd
22. 证券核心交易架构演化-传输模型变化 基于路由的架构 基于总线的架构 节点1 路由管理 节点1 路由表 节点2 路由表 节点3 Send to --------> Receive from 路由表 节点2 Publish --------> Subscrib 节点3
23. 证券核心交易架构演化-传输模型变化 基于点对点传输的结构 基于组播的结构 节点1 节点1 交换机 节点2 交换机 节点2 节点3 性能和公平性 节点3
24. 证券核心交易架构演化-低延时加速和并行 • 全内存实时数据处理 • NUMA节点优化 • CPU核心分配 • 缓存命中率 • 网络加速与Kernel bypass • 低延时网卡 • 低延时交换机 • 软件硬件化 • FPGA • 微观进程内的并行处理 • 多线程并行 • Barrier • 顺序merge • 分布式并行处理 • 多种模式-负载均衡
25. 证券核心交易架构演化-资源可调度 • 数据与计算资源相分离 • 计算资源可调度 • 内部状态可输出 • 应急场景可操作 • 进程内的资源管理器 • 计算资源:线程 • 内部状态:堆内存和共享内存 • 提供状态查询,应急修改等功能
26. 证券核心交易架构演化-分布式节点管理 • 一个分布式节点管理 • • • • • 参考数据上场 配置数据加载 日志和状态数据的监控 操作控制 升级部署 • Service Mesh与Sidecar的 • 节点业务的支持 • 支持类节点的互联 • 交易分布式节点的Sidecar 以系统为单 位的管理 以节点为单 位的管理
27. 证券核心交易架构演化-国产化的支持 调优最佳实践 系统性能优化工具 NUMA绑核+CPU预取, 队列操作时延显著下降 版本升级、锁优化、内存优化等手段调优,多并发场景整体性能提升较大 多并发场景下整体性能 版本升级: NUMA绑核 C/C++性能分析 + CPU预取配置 资源调度分析 • 打开CPU预取 • 修改内核代码 • 升级编译器,引入两个编 译选项(流水线&目标平 台指令集) • 升级Glibc至2.3.1版本 8 7 6 锁优化: 5 • 修改业务逻辑,优化锁的 顺序,提升锁的执行效率。 4 3 内存屏障优化: • 修改C++ atomic原子类 型指定的内存模型,提升 内存池性能 7.1 nr_alloc_success_++; nr_alloc_success_.fetch_add(1, std::memory_order_relaxed); 2 1 0 5.4
28.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-15 15:29
浙ICP备14020137号-1 $Map of visitor$