论文部分内容阅读
随着我国证券市场的快速发展,金融创新的不断深化,机构投资者面临激烈的市场竞争与盈利压力,同时随着资金规模扩大、市场风险加剧、行情频繁波动,完全凭借手工操作的资产管理模式迎来了严峻的挑战,越来越多的机构投资者选择使用高频交易、算法交易等程序化交易方式来解决操作效率、风险管理等难题。在程序化交易应用越来越广泛同时交易策略趋同的现状下,能够最先判断时机并下单到交易所的机构会获取更高收益,因而交易用户对于交易通道的性能提出了越来越高的要求,传统基于数据库的证券集中交易系统已无法满足程序化交易对低延迟交易通道的需求。本文对低延迟交易通道进行研究,旨在设计一个具有低于毫秒级延迟、高可用的极速证券订单处理系统。在功能方面,极速证券订单处理系统为交易客户提供用户接入、委托、撤单、基础数据与交易数据查询的功能,并在交易所反馈委托、撤单、成交处理结果时通知交易客户端,同时为证券公司业务管理人员提供基础数据维护与交易数据查询功能。在性能方面,极速证券订单处理系统需要实现单笔委托时间在0.5毫秒以内、单笔成交响应时间在1毫秒以内的性能指标,满足程序化交易系统对极低交易延迟的需求。在可用性方面,极速证券订单处理系统各模块需支持无单点故障。本文对极速证券订单处理系统使用的消息中间件、分布式协调系统、命令职责分离机制等技术进行介绍,对系统进行需求分析与架构设计,介绍了核心功能与关键技术的设计与实现,并从功能、性能与可用性方面进行了验证,验证结果表明系统实现满足需求预期。与同类证券订单处理系统相比,本文工作具有以下特点:1.系统基于命令职责分离机制实现订单处理与查询功能分离,系统总体划分为交易子系统、交易接口动态库、管理子系统三大部分,交易子系统负责订单处理功能,订单处理完成后将订单与成交信息推送到交易接口动态库与管理子系统,查询功能分别在交易接口动态库与管理子系统实现,从而实现查询功能不影响订单处理性能。2.交易服务采用全内存处理机制,订单处理用到的基础数据与交易数据均保存到内存中,使用多种索引机制实现高性能订单处理,并保证订单处理的事务性。3.采用主动复制技术实现交易服务的高可用性,基于Apache Active MQ的全排序机制保证多个交易服务进程实例接收到相同顺序的消息,多个交易服务进程同时处理消息以保持相同的内存状态,基于Apache Zoo Keeper实现主备选举,仅由主进程对外发送处理结果消息,支持交易服务自动故障切换。