采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,请问撮合系统目前已经做到高可用了吗?Distuptor在系统中作用是什么?哪里体现出其高性能的?期望老师抽空解答下,谢谢您
老师还有几个问题想请教下。
这两天看了下disruptor原理,想请教下老师之前生产环境撮合系统也是和项目中一样的用法吗?根据老师的经验使用了disruptor和不使用,在生产环境性能提升有多少倍?我本地用BlockingQueue对比,大概3倍左右。
老师过往的生产环境通常同时撮合的订单量大概有多大?TPS大概是多少呢?挺好奇生产环境的数据。
关于raft协议,我最近也快速学习了下。因为raft是强领导型的协议。一切已leader为主。写入的确认需要过半。随着节点增多,写入的tps应该是比较受影响?
老师之前的生产环境的排队机也是基于raft协议的吗?生产环境集群节点大概多少?写入的TPS是多少呢?
同問
谢谢老师的解答。不过以下问题还是没有弄明白。
目前只看到了排队机的高可用,撮合的高可用具体是怎么做的呢?
为啥需要在排队机进行定序处理?我理解是撮合那边会进行价格优先,时间优先的排序处理。
排队机是会向所有网关去抓取订单吗?
排队机到网关的物理距离也是不一样的,公平性具体体现在同一个频率去抓取订单?
1.撮合的高可用是通过排队机来辅助的,撮合核心的首要任务是高效,所以它不做任何高可用的处理,一旦挂了,从排队机拉数据重算。 2.排队机就是专门给撮合核心定序的,撮合只是进行撮,其他逻辑一概不管。 3.是的。 4.排队机是按照固定频率扫面所有网关的,在收集所有数据后统一排序,这对所有网关都是公平的
谢谢老师,目前在撮合中没有看到如果挂了具体怎么处理的代码,这部分是没有实现吧?我目前想到的解决方案是基于raft选举机制,只有主去撮合,如果主挂了,新的主去排队机拉数据,重新撮合,同时每笔撮合完成的订单需要从排队机删除,对吧
我觉得可以这样理解,排队机除了定序,还承担了存储作用。 存储的数据就是定序后的全量委托单, 这部分需要高可用,原因是万一宕机,可以重新根据撮合进度重放订单数据恢复。 而撮合在这个地方是每个撮合同时处理一个标的委托单,把撮合结果持久化并返回上游以后将排队机中撮合完成的订单清理,(也可以不清理) 本课程的撮合与排队机是分别部署的,也就是存储与计算分离,实际上撮合与定序也可以放在一起,也就是撮合自己定序后持久化数据,再转发给撮合流程,那么高可用就变成了整体的高可用。 而本身撮合业务就是一个强顺序性,一致性的业务,所以也就不可能同时有多个撮合对一个标的进行撮合业务,
撮合部分实现了高可用
disruptor可以理解为一个高性能队列
高性能提现在数据的编解码还有撮合数据结构的设计
登录后可查看更多问答,登录/注册
独家掌握金融业务系统知识,培养金融IT工程师核心竞争力
921 4
997 1
975 4
1.6k 8
716 6