基于Disruptor游戏服务器消息总线的设计

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后,生产时锁消失(实际情况是

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值