Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用SmartFoxServer实现Hazelcast_Java_Hazelcast_In Memory Database_Smartfoxserver - Fatal编程技术网

Java 使用SmartFoxServer实现Hazelcast

Java 使用SmartFoxServer实现Hazelcast,java,hazelcast,in-memory-database,smartfoxserver,Java,Hazelcast,In Memory Database,Smartfoxserver,我是一名游戏服务器开发人员。我正在为我的游戏服务器(SmartfoxServer 2x)使用hazelcast,以避免直接请求数据库。 但我想知道如何使用hazelcast获得最佳性能: 访问缓存时始终创建新的hazelcast客户端实例,然后将其关闭。或 创建一个hazelcast客户端实例池,并重用。在应用程序结束之前不要关机。或 只创建一个hazelcast客户端实例,在应用程序结束之前不要关闭。或 使我的实时服务器成为hazelcast成员 正确的方法是什么?我的系统服务于大约5000个

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

  • 访问缓存时始终创建新的hazelcast客户端实例,然后将其关闭。或
  • 创建一个hazelcast客户端实例池,并重用。在应用程序结束之前不要关机。或
  • 只创建一个hazelcast客户端实例,在应用程序结束之前不要关闭。或
  • 使我的实时服务器成为hazelcast成员
  • 正确的方法是什么?我的系统服务于大约5000个CCU

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


    提前感谢,

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

    非常感谢。如你所说,我将使用第四个。我的名声不足以支持你的回答,很抱歉。