Coherence-英雄联盟的幕后英雄

 

 

英雄联盟-史上最成功的游戏之一

英雄联盟,简称LOL是由美国Riot Games开发、中国大陆地区腾讯游戏代理运营的英雄对战MOBAMultiplayer Online Battle Arena)竞技网游。

游戏里拥有数百个个性英雄,并拥有排位系统、天赋系统、符文系统等特色养成系统。

《英雄联盟》还致力于推动全球电子竞技的发展,除了联动各赛区发展职业联赛、打造电竞体系之外,每年还会举办季中冠军赛全球总决赛“AllStar全明星赛三大世界级赛事,获得了亿万玩家的喜爱,形成了自己独有的电子竞技文化。

CNNIC2016年的的数据统计,在MOBA细分市场,LOL的玩家已超过65%,处于绝对领先地位。根据Riot 2014年公布的数据:2014年一月:
LOL
全球日均用户:2700万以上。
LOL
全球月均用户:6700万以上。
LOL
全球同时在线纪录:750万。

此后,Riot再没有公布游戏的上述具体数据,只是在20169月,Riot高层透露LOL月均用户有1亿左右。可见LOL的用户还在不断的增长中,正是因为有非常好的体验,LOL才如此成功。而这一切都依赖于LOL的底层技术架构。让我们了解下LOL的技术架构。

英雄联盟的幕后英雄-Coherence

如下图,LOL在服务端基本采用开源技术,唯一的商业软件是Coherence


Coherence在里面起到一个非常关键的作用,通过Coherence缓存后台服务数据,主要有:游戏分区信息,玩家信息撮合,玩家的积分,游戏中的对话和交互,各种实时统计信息等。由于是在内存中直接访问这些数据而不是通过数据库,响应时间大大缩短,使游戏非常流畅,体验非常好。同时Coherence的动态线性扩展功能,保证在高峰期也有很好的性能和体验。具体可参见https://www.infoq.com/presentations/League-of-Legends

Coherence零数据丢失的内存数据网格

 Coherence2001年发布的第一个版本, 2007Oracle收购。到现在已经16年的历史,历经演进,目前最新的版本为12.2.1Coherence可以说是最早的NoSql和分布式缓存产品。与开源的产品相比,coherence是他们的前辈,更成熟稳定可靠。Coherence采用独特的P2P架构,没有单点故障和单点瓶颈,可以线性扩展。

Coherence可以对缓存的数据进行备份,保证有节点出故障或者停机时,数据不丢失。也可以动态加入新的节点。这时候数据会重新分布。这些对应用都是透明的。Coherence支持Java, C++, .Net客户端。支持REST访问。

 

Coherence不仅仅是缓存

缓存只是Coherence的功能之一,Coherence还可以对缓存的数据进行各种计算统计分析。如最简单的求和,求平均值等。并且Coherence在做这类统计分析时是并行处理。比如1亿条数据,缓存到100个节点上,每个节点上面100万条记录。做统计分析时,是100个节点同时进行,然后把结果汇总,这样就大大提升了性能。

同时Coherence支持事务,支持JTA,可在内存中进行交易处理,并保证数据的一致性。

当缓存中的数据发生变化时,Coherence支持事件触发,在应用中就可以侦听相应的事件,进行处理。

 

Coherence的独特优势

现在的市场上的缓存产品很多,如常见的开源的Memcache, Redis等,商业软件如:Gemfire等。同他们相比,Coherence有如下优势:

 

1. 支持事务,支持JTA

如同时更新2个cache的内容并保证数据一致性,都成功或者都失败回滚。同数据库或者JMS队列等通过JTA,进行分布式事务。

 

2. 提供计算靠近数据的处理方式

Coherence提供类似Hadoop的计算靠近数据的处理方式EP(entryprocessor),减少网络访问,提高性能。

   

3. 提供多种缓存方式,供不同场景选择

有Local cache,Replicated cache ,Distributed cache, Near Cache 4种缓存方式。

   

4.内存和数据库之间的数据同步

内存中的数据更新,自动同步到数据库,数据库中的数据更新自动同步到内存cache

   

5.独特的P2P架构,没有单点故障和瓶颈,线性扩展

可以动态增加或者减少节点,缓存中的数据自动重新分布,对前端应用是透明的。

 

6.在Oracle弹性云一体机Exalogic上有超高的性能

Coherence在Oracle弹性云一体机Exalogic上做了专门的优化,Coherence+ Exalogic可以提供超高的性能,如下图:

               

7.轻量级,开发集成都很简单

Coherence的核心是一个只有十几M的jar包,非常容易同如今大行其道的Docker容器结合。开发也是简单的调用put, get等API. 另外Coherence很容易同Hibernate等OR mapping工具集成。还提供Memcached适配器,可以很容易把采用Memcached的应用迁移到Coherence

 

8.相比开源产品,Coherence作为商业软件,能够提供更好更及时的服务。

Coherence在2001年就发布了第一个版本,可以说是分布式缓存和NoSql产品的鼻祖,相比很多开源的产品更成熟稳定可靠。作为商业软件,能够有更好更专业及时的服务。

 

9.成熟稳定,有大量的客户案例

Oracle Coherence有大量的用户,在国内的电信,金融等行业也已经有很多案例。如某沿海移动公司就把核心的计费,账务,CRM等系统构建在Coherence之上,大大提升了性能和扩展性。同时实现去小型机化,把应用部署在X86开放平台的目标。

 

总之,在如今到处都强调用户访问体验的年代。Coherence这种把性能提升到极致的产品必将有越来越广泛的应用场景,在数字化时代大显身手。


更多精彩内容,欢迎关注本人的公众号: 书生老徐

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值