[高性能] - 缓存架构
对于交易系统来说,低延时是核心业务的基本要求。因此需要对业务进行分级,还需要对数据按质量要求进行分类,主要包含两个维度:重要性,延时要求,数据质量。共包含以下三种场景:
1. 重要 + 延时性要求高
实时行情(可容忍部分丢失):
交易链路(不可丢失,做市,自营(手工单),量化(电子单),RFT/RFQ,订单管理):
报价引擎
实时风控
权限
2. 重要 + 延时性要求低
历史行情(可部分丢失):
参考数据():
交易对手():
事后风控
监控数据
日志
3. 不重要 + 延时性要求高
4. 不重要 + 延时性要求低
1. 缓存场景
对于
1.1 权限
因为粒度细导致数据量大,而且容易产生hotKey,由于消息级别的权限设置,导致对延时性要求极高,一般要求在0.5ms以内。
所以会区分有无权限要求的消息。
1.2 市场参考数据
这些数据通常变化的频率比较低,从数秒到数年不等,数据量相对较小,但访问的时候要求延时性也极高,通常是0.5ms。这些数据如:债券估值,债券合约,收益率曲线,利率曲线,交易行情,交易对手方等。
对于交易频繁的产品,会造成hotKey问题,对于交易行情还容易造成bigKey问题。
2. 缓存过期策略
可以指定过期计算的开始时间,或者指定存储对象中的某个字段。