gpt4 book ai didi

java - 使用 SmartFoxServer 实现 Hazelcast

转载 作者:行者123 更新时间:2023-11-30 06:18:15 24 4
gpt4 key购买 nike

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

  1. 总是在访问缓存时创建新的 hazelcast 客户端实例,然后关闭它。或者
  2. 创建一个 hazelcast 客户端实例池,并重复使用。在应用程序结束之前永远不要关闭。或者
  3. 只创建一个 hazelcast 客户端实例,直到应用程序结束才关闭。或者
  4. 将我的实时服务器设置为 hazelcast 成员。

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

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

提前致谢

最佳答案

最佳答案是 3 或 4。当我在游戏行业工作时,我使用 Hazelcast 不是作为缓存,而是用来分发/集群游戏服务器本身。因此,我的游戏服务器本身就是集群的一部分。如果你想要一个专用的数据库缓存集群,只需使用一个客户端,将它与游戏服务器一起启动,并在游戏服务器本身处于 Activity 状态时保持它处于 Activity 状态。它在内部汇集,客户端足够聪明,几乎在所有情况下都能将请求路由到正确的集群节点。如果你想将它用于缓存之外的其他用途,我会选择让游戏服务器成为集群本身的一个节点。请记住,每个节点都包含一部分数据,这可能不是您希望游戏服务器充当数据库缓存的内容。

关于java - 使用 SmartFoxServer 实现 Hazelcast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24928377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com