补充篇
1. 市场数据系统实现的是行情数据的多层复制和筛选。 交易所数据源包含多个品种证券的交易行情和报价行情, 连接市场数据系统的多个用户需要看到自己感兴趣的行情数据。一份行情数据从数据源到最终用户需要做一对多的复制,数据源包含所有品种的行情数据到最终用户需要经过筛选和过滤, 只选出该用户感兴趣的数据。
2. 消息中间件 RV 通过广播复制消息,这是无代价的。同时通过消息的 Subject 实现订阅者对发送消息的选择。
3. 实际系统设计中,由于 RV 的高成本。一般选择后台到中台使用 RV 做第一层的数据复制和筛选,自己开发中台来实现中台到终端用户的数据复制和筛选。
4. 通过 RV 消息的 Subject 实现第一层订阅者对发送消息的选择,将数据的范围从一个交易所的所有品种降到一个交易所所有品种的几十分之一,或者到百分之一。
5. 对于一个交易所数据源到最终用户的逻辑链路,在链路上的消息要保证严格的顺序性。 RV 消息中间件保证这种顺序性,即使中间过程有丢失的消息,也不会违反这个准则。在之前的文章中总结 RV 适用于市场数据系统的特性,漏了这一点,特此补上。
6. 实时数据是从后到前推送的,保证行情数据的高实时性。历史数据是由前台发起请求,从后台获取的,这是请求响应的模式。
7. 对需要计算的指标,如果采取完全由后台计算的话,那中后台,中前台之间传输的数据量就会过大。建议还是把计算分散。
8. 原始行情的推送和指标的计算最好不要在同一个应用里,避免相互干扰,尤其不要影响行情数据推送的实时性。