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