1. 前置文章
[BIZ] - 1.金融交易系统特点https://blog.csdn.net/besthezhaowen/article/details/136118133
[缓存] - 1.缓存共性问题https://blog.csdn.net/besthezhaowen/article/details/136111466
[缓存] - 2.分布式缓存重磅中间件 Redis-CSDN博客文章浏览阅读1.4k次,点赞23次,收藏17次。尽量使用短key不要存过大的数据避免使用keys *:使用,来代替在存到Redis之前压缩数据设置 key 有效期选择回收策略(maxmemory-policy)减少不必要的连接限制redis的内存大小(防止swap,OOM)slowLog使用pipline批量操作数据。https://blog.csdn.net/besthezhaowen/article/details/136068293?spm=1001.2014.3001.5502
1.4 HotKey和BigKey问题严重
对于热点交易品种,容易造成HotKey问题;权限也跟着容易照成HotKey问题。聚合行情,报价数据容易造成BigKey问题。
2. 数据存储层
根据数据的特点,以及应用对数据质量的不同要求,对数据的存储方式进行分类和冗余。
hadoop hdfs,mysql,cassandra,ignite
3. 缓存中间件选型
由于我们的场景涉及频繁的查询和过滤,redis这种key/value的模式并不适合;再加上二级缓存的要求,如果使用redis,会使得设计变得非常复杂。因此我们选用了ignite,它的高并发和高性能特点并不亚于redis。
4. 多级缓存
本地缓存可以选用ignite,也可以根据过滤条件的需要,选择caffine或者自研框架。
5. 高性能,高并发解决方案
5.1 预加载
对于热点数据,如权限,市场参考数据,利率曲线等进行预加载,防止造成缓存击穿。
5.2 冷热分离
实时行情,历史行情,历史行情再根据年限分别存储。
5.3 按需存储到不同数据存储组件
冗余