• 1. 证券交易系统架构设计上海证券交易所 技术开发部 陈晨 cchen@sse.com.cn +86 138-0199-1611—— 挑战与实践
  • 2. 目录上交所交易系统介绍 交易系统技术架构 挑战及解决之道 交易系统的未来
  • 3. 上交所交易系统介绍
  • 4. 发展历史1990年11月26日成立,同年12月19日正式营业。
  • 5. 1997,1999发展历史开业的第一天就采用电子撮合系统进行交易撮合 基于Novell服务器的局域网络 每秒处理3笔业务,月处理成交2万笔 市场的委托、行情、成交回报等环节仍需要手工完成 1992年12月,系统升级 Novell主机更换为基于惠普小型机UNIX操作系统 每秒200笔,日处理能力200万笔 1993年,采用单向卫星广播行情,双向卫星接收报单 1997年和1999年进行了两次设备和应用的重大升级 系统处理能力提高到每秒2万笔,日处理能力800万笔 后随着不断的扩容和改造,性能和容量不断被刷新 1990.12.19开业第一天即采用电子撮合系统 每秒处理3笔,月处理2万笔 上交所1992.12系统升级,采用UNIX小型机 每秒200笔,日处理200万笔1993.1采用卫星广播行情 双向卫星接收订单系统两次升级,性能提升至每秒2万笔,日处理800万
  • 6. 发展历史新一代交易系统的上线 2009年11月23日,新一代交易系统上线 使用多主机并行撮合 最高支持10万笔每秒 全天容量1亿笔订单 帐户容量1亿 基于新一代交易系统,2014年11月17日沪港通业务上线 2009.11.23新一代交易系统上线 使用多主机并行撮合 最高支持10万笔每秒 全天容量1亿笔订单 账户容量1亿 上交所2014.11.17沪港通业务上线
  • 7. 海外市场市场结构图证监会上交所上期所深交所大商所券商基金公司股票债券基金商品期货贵金属中金所QDII郑商所权证监管者基础设施市场参与者 投资者股指期货OTC 产品境内投资者QF IIRQFIIRQFIIQFLP香港投资者上市公司行情商指数公司中登公司SFC港交所沪港通
  • 8. 系统结构图券商柜台系统交易所报单机通信服务器通信服务器交易主机交易主机交易主机交易主机外部接口主机外部接口主机消息总线存储网关其他各类系统 交易专网核心交易系统内部结构
  • 9. 交易系统技术架构
  • 10. 交易系统技术架构交易系统的三层式划分 接入点 B接入点 A接入点 C定序器 1定序器 1定序器 2定序器 2基金公司资管公司沪港通券商交易层定序层接入层撮合器 1撮合器 1分配股票(银行、汽车) 分配基金、ETF撮合器 2撮合器 2分配股票(制作业、零售) 分配债券
  • 11. 交易层功能执行交易业务逻辑实现模式同组交易主机为接收单一输入序列的状态机从一系列独立运作的交易主机节点中自动选举产生主节点可利用集群锁服务来选举主节点备机可选择“重演”或者“重放”模式
  • 12. 交易层 集群锁管理模式基于OpenVMS的Lock机制,实现了一套用于集群(Group)管理,集群内各主机同步、通信的工具库818283获取锁成功,成为集群Master 获取该锁失败,成为集群Slaver,同时被告知Master为81获取该锁失败,成为集群Slaver,同时被告知Master为81
  • 13. 接入层功能点对点的路由转发将券商端的订单提交给定序层实例实现模式提供一组彼此对等的实例同时提供对外服务不需要考虑主从划分和失效接管
  • 14. 定序层功能高可用设计的关键、确定全序持久化及保持动态一致性实现模式多播通信机制Paxos算法、虚同步自主研发 、商业软件 、开源软件逻辑概念,可采用单独排队机定序或者主撮合定序
  • 15. 挑战及解决之道
  • 16. 交易系统面临的挑战交易系统在设计之初就要考虑到如何满足和平衡各方面的技术需求 高性能高可用易扩展交易系统架构设计是一个平衡和抉择的艺术
  • 17. 高性能衡量交易系统性能主要指标 吞吐量 订单时延 系统容量
  • 18. 高性能 1. 流水线化内存撮合HCCM 主机与通信服务器间通信HHCM 主机间通信MSRT 撮合直通路由器Pre Matcher 撮合预处理模块Main Matcher 主撮合模块Trade Confirmation 成交确认Data Replication 数据持久化Market Data 行情数据Trade Book Maintain 成交簿维护 撮合内部消息流撮合下游消息流
  • 19. 高性能 2. 内容和键值分离App-1MsgShared MemoryApp-0Ref Msg Ref.MsgABCDMsgApp-nGRef.EFAppl. Process 1App-2Ref.FG精简的进程间通信消息 消息body通过内存缓存; 进程间传递短小的消息header; 进程通过header信息,访问内存获取消息实体;
  • 20. 高性能 3. 数据打包处理消息的打包处理 请求消息通过用header表示后很短小,支持多条打包模式; 申请新的共享内存消息,消息体中包含多个请求实体的header; 实际消息通信中传递打包消息的消息header即可; 进程接收消息后,根据打包消息body中的多个实际消息header,逐一处理。 App-1MsgApp-0Msg AShared MemoryRef 1 Msg 1 Ref 2 Msg 2 Ref n Msg n …Ref i Ref 1 + Ref 2 + … + Ref nCBDRef. iFE
  • 21. 高性能 4.多线程异步IO应用异步IO提升性能的典型案例 调用进程通过异步IO连续的抛出一组IO请求,RMS可以并行地处理这些请求,成倍地提升IO吞吐量; 连续发出的请求应当有一定限制,当未完成的请求数量达到限制时,调用进程可以主动将自己阻塞。 调用进程AST调用进程RMS (文件系统)达到并发IO请求的上限,主动阻塞
  • 22. 高性能 5. 多机并行OESCSHost交易主机集群HostHost中央主机集群HostHostHostCSCSOESOES外高桥数据中心陆家嘴数据中心
  • 23. 高可用衡量交易系统可用性主要指标 恢复时间目标RTO(Recovery Time Objectives) 恢复点目标RPO(Recovery Point Objectives)
  • 24. 高可用 技术抉择的难题人工侦测故障 OR 应用程序自动侦测故障? 应对单点故障 OR 应对双点故障? 同城灾备同步复制 OR 异步复制?
  • 25. 高可用 1. 站点备份站点备份
  • 26. 高可用 2. 主机备份
  • 27. 高可用 3. 进程恢复进程的恢复机制 事务/请求数据带事务的文件存储,包含相应的状态位; 任何一个进程异常,根据事务文件中数据状态重演恢复; 无法应对程序本身逻辑错误 Txn DataApp-0AApp-1Txn DataDatabase/ Journaled FileData + statusBCDApp-1’TriggerE
  • 28. 高可用 4. 消息重发/防重处理系统发生主备切换 切换完成后的自动通知机制 未响应消息重新路由机制 消息防重复处理机制
  • 29. 高可用 5. 流控机制流量/负载控制: 系统必须提供自保护机制来处理异常的大量或者突发交易量 包括主动控制和被动控制 主动控制: 主动控制实现于前端(请求源端)会员,根据尚未响应的订单数量控制请求发送速度 系统可配置成会员端总体的请求数量不超过后台的处理能力,因此从源端控制整个系统的负载 被动控制: 路由架构内置的自我保护机制 每个路由架构组件跟踪其输入/输出差异,并且根据监测的差异触发自我保护机制来或者阻塞消息流,或者弹回新的请求
  • 30. 易扩展主要指标 扩展性衡量系统适应业务发展与变更的能力,既包括业务容量的扩展又包括业务模式的扩展 应对方案 高扩展性需要在内部核心数据结构和接口定义上预留足够的扩展空间。 系统内部结构上,通过分层抽象服务使得某一个层次的升级更新不影响到全局架构,通过模块化设计使得某一个模块的变更不影响到整体稳定。
  • 31. 易扩展 1. 系统架构的扩展Front EndHost TierTrading ClusterTHCentral ClusterCHEICSCSCSCS TierLAN…OESOESOESOES Tier…Binary valuesFixStepProtocol Tier…Back EndLANWAN or LAN后台的扩展 交易层中的各个平台,可以平行扩展设备,支持业务的容量和品种的发展 接入层中,可以根据网段规模和接入点无缝第进行平行扩展;每个接入点属于无状态设备 前台的扩展 对于市场参与者的接入,既提供客户端的模式,也支持消息协议和API的模式扩展 交易所提供的接入端可以无差异的多地不少和彼此备份、分流业务数据等
  • 32. 易扩展 2. 应用配置的扩展基于产品的不同类别配置,可根据负载均衡的原则,重新进行划分或扩展单一类别的处理容量可以通过配置参数进行调整。调整后的容量在系统重启后自动生效银行股银行股A银行股B主机1主机2主机1医药板块零售板块订单量200w订单量200w医药板块零售板块订单量500w订单量150w
  • 33. 易扩展 3. 设计模式的分层设计业务应用系统Patten LayerFunction LayerWrapper LayerOS 操作系统 (Linux, UNIX, Free BSD等支持POSIX接口的操作系统)批处理架构 BAT Arch 消息通讯架构 MSG Arch 应用进程架构 SHL Arch 监控架构 MON Arch 操作架构 OPT Arch 高可用架构 H Arch 共享内存库 SHM Lib日志库 LOG Lib 同步IO库 SIO Lib异步IO库 AIO Lib配置信息库 CFG Lib 数据算法库 DSM Lib应用锁库 LCK LibC99标准POSIX标准OS FeatureGLIBLog4cOS Wrapper3nd Party Lib Wrapper错误 传递 数据 类型 框架 配置
  • 34. 交易系统的未来
  • 35. 交易系统的未来轻量化的技术系统 小型机 -》PC服务器 开放性的转变 封闭操作系统 -》开源操作系统 商业应用软件-》开源应用软件 形成企业级的基础库 EzWEB EzSOFT HAP 新技术新算法的研究 FPGA Infiniband 全内存备份
  • 36. 互联网格局下的交易系统更多的外部攻击 更长的交易时间 更复杂的业务处理 更紧迫的竞争压力
  • 37. Thanks!