# occo-exchange **Repository Path**: lostwind/occo-exchange ## Basic Information - **Project Name**: occo-exchange - **Description**: 采用热备份技术引入多台互为热备份的分布式撮合引擎。多策略交易所撮合引擎,包含订单薄撮合与深度撮合。采用伦敦外汇交易所LMAX开源的Disruptor实现高效撮合队列。良好的解决了技术复杂度与业务复杂度相互交错纠缠不清的问题,让技术升级与业务扩展更高效。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2020-07-02 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # occo-exchange #### 介绍 采用热备份技术引入多台互为热备份的分布式撮合引擎。多策略交易所撮合引擎,包含订单薄撮合与深度撮合。采用伦敦外汇交易所LMAX开源的Disruptor实现高效撮合队列。良好的解决了技术复杂度与业务复杂度相互交错纠缠不清的问题,让技术升级与业务扩展更高效。 #### 优势 - match-engine水平价格为独立撮合逻辑,相比于订单队列为撮合队列的交易引擎来说,价格区间越小时,性能越优越。 - match-engine不再对撮合薄进行排序,而是用并行流计算出最优撮合价格,进行撮合。 - match-engine每个价格下的订单都是异步完成被撮合。独立价格下订单不影响下一个新发生的撮合。 - match-engine每个价格撮合都是独立的,与下一个价格没的关系,实现快速吃单。 - match-engine每个新的订单经历撮合处理器后,后续逻辑采用并行计算,能更快速反馈数据撮合结果。 - match-engine使用数据流反应式MQ消费,降低由MQ带来的数据延迟。 - match-engine撤单走独立的逻辑,不用和下单在一个处理序列。 - match-engine釆用多机热备份技术,降低了单一内存撮合引擎故障时系统不可用的问题。 #### 技术选择 - Disruptor: 号称每秒钟承载600万订单级别的无锁并行计算框架,主要选择原因还是并行计算。 - Hazelcast: 很好进行内存处理,很强原子性保障的操作能力。同时分布式内存实现很简单,实现多机热备份数据。 - rocketmq: 消息可以做到0丢失,支持10亿级别的消息堆积,不会因堆积导致性能下降,主要是经过双11检验 - WebFlux: 它能够充分利用多核 CPU 的硬件资源去处理大量的并发请求 。 #### 描述