LMAX是一种新型零售金融交易平台,它能够以很低的延迟(latency)产生大量交易(吞吐量). 这个系统是建立在JVM平台上,核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单,用1微秒的延迟获得吞吐量为100K+. 业务逻辑处理器完全是运行在内存中(in-memory),使用事件源驱动方式(event sourcing). 业务逻辑处理器的核心是Disruptors。Disruptor是一个高性能低延迟的异步处理框架,或者可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模式实现,或者事件-监听模式的实现,直接称disruptor模式。
一款ARPG游戏,它的服务器设计是按照多线程处理业务,分为个人初始化业务(init bus),个人常用业务(cache bus),场景(stage),公共业务(public)等,根据投递到业务线程的消息来源不同,可以分为 客户端触发(nioEventLoopGroup-X-Y),异步事件触发(async-event-X),别的业务线程触发(内部指令和事件分发),定时调度触发(gameScheduler-X),线程之间会无时无刻频繁地进行消息的生产和消费,JMS消息总线的效率对服务器的性能影响是全方位的,一款高性能低延迟的框架是我们游戏业务的基础保障。
我们原先的设计是基于LinkedBlockingQueue进行投递的,生产和消费都用到了锁,生产用的是putLock(ReentrantLock),消费是takeLock(ReentrantLock)。替换成Disruptor后,生产时锁消失(实际情况是