行情系统背景
我国证券行情主要包括股票行情、LV2行情、基金行情、债券行情、期权期货行情等,股票行情主要指A股、B股和即将上线的新三板。
那证券行情系统主要有四个显著特点:
1、行情指标计算量大
从交易所快照行情数据到行情指标数据,需要经过大量计算工作。以十种K线计算为例,证券数保守估计1.5W,每天开市4小时,每3秒刷新一次行情,共需计算7.2亿次。
再加上实时,分时,市盈率,涨跌幅,委比,委差等十几项指标计算,每日计算量在10亿级别以上。
2、行情指标时效性高
实时行情服务是券商的基础服务,是投资者决策的主要依据。1秒的行情数据差别可能导致资产的巨大差异,比如涨跌停板股票的买卖时机会决定投资的盈利和亏损。
3、并发峰值高
证券交易市场是限时开市开盘的。在开市和开盘期间,行情服务的访问量会明显高于其他时间。尤其是早上9:00-9:35的之间,并发访问量会高于收盘期间几十倍,最大系统
Qps为100万/秒。
4、行情推送流量大
用户订阅证券行情,后台服务主动推送行情更新。在行情比较好的时候,有近100万并发用户,用户平均订阅20只证券,每3秒刷新一次行情,最大推送量约为700万/秒,经
过合并和缓存优化,实际推送量>200万/秒。
机构演化
典型系统架构
针对证券行情系统的特点,我们来看一下证券行情系统的原有架构。
首先从行情源这一侧来看,行情元数据由上交所、深交所、联交所等行情快照提供,经过行情解码服务后,被发送到消息队列。行情指标计算系统通过订阅行情元数据进行计算,将结果写入redis集群,并实时发送给推送代理。
其次从用户侧来看,用户通过接入网关查询证券行情,请求会通过逻辑代理去redis集群查询对应的数据。推送代理会实时向用户推送订阅的证券行情。