使用SmartFoxServer实现Hazelcast

bac*_*den 2 java in-memory-database smartfoxserver hazelcast

我是游戏服务器开发人员.我正在使用hazelcast为我的游戏服务器(SmartfoxServer 2x)直接避免请求数据库.但我想知道如何使用hazelcast来获得最佳性能:

  1. 始终在访问缓存时创建新的hazelcast客户端实例,然后将其关闭.要么
  2. 创建hazelcast客户端实例池,然后重用.在应用程序结束前不要关闭 要么
  3. 仅创建一个hazelcast客户端实例,在应用程序结束之前永远不会关闭.要么
  4. 将我的实时服务器作为hazelcast成员.

什么是正确的方法?我的系统服务于大约5000 CCU.

我的游戏是一种纸牌游戏 - 基于回合制.每场比赛大约2分钟,最多4名球员.当它结束时,我必须记录每个交易(货币变化)和用户的新货币价值.使用5000 ccu,在最坏的情况下,同时必须记录(5000/4)*(4 + 4)= 10000个条目.它不能直接使用mysql查询(慢),但使用hazelcast,它是可能的,对吧?但我是Hazelcast技术的新手,所以我不知道解决我的问题的正确方法是什么.

预先感谢,

noc*_*ius 5

最好的答案是3或4.当我在游戏行业工作时,我使用Hazelcast而不是缓存,而是分发/集群游戏服务器本身.因此,我的游戏服务器本身就是集群的一部分.如果你想拥有一个专用的db-cache集群,只需使用一个客户端,与游戏服务器一起启动它,并在游戏服务器本身处于活动状态时保持活动状态.它在内部汇集,客户端足够智能,几乎在所有情况下都可以将请求路由到正确的集群节点.如果你想将它用于不仅仅是缓存,我会将游戏服务器作为集群本身的一个节点.请记住,每个节点都包含一部分数据,这可能不是游戏服务器充当数据库缓存所需的.