我的公司正在开发一款类似弓箭手的游戏,而我只是后端开发人员。
我已经实现了一个事件驱动系统,我可以在其中重用统一和服务器之间的代码。(两者都是.net)我还想分析我们从这些事件中获得的数据。
我使用名为 GameEngine 的通用类库。这些库负责变更集。
当玩家升级物品或完成章节时,游戏引擎将 ChangeSet 应用到用户。(UserChangeSet、EventChangeSet、StoreChangeSet 等)
当用户登录时,我将变更集发送到服务器,服务器还使用相同的代码一一处理变更集,从而产生相同的用户。
我目前的多区域架构涉及:Route53 + AGW + LAMBDA + DYNAMODB + 使用 terraform 的多区域管道。那些东西都做好了。
现在,我想分析来自这些变更集的数据
我认为如果我使用 rds 会很好,但是即使没有索引和空数据库,在 lambdas 中插入 3 个不同的表也会增加 500 毫秒的延迟。
稍微搜索一下,这些就是我的新想法;
将数据从 lambdas 推送到 AWS Kinesis,然后推送到 S3,然后使用 AWS Athena SQS 进行分析,然后使用 S3,然后使用 ATHENA 或 Lambda,然后使用 Elastic search
我想查询在 10 个变更集中升级 ITEM X 的用户数量
public class InventoryChangeSet:ChangeSet
{
public IEnumerable<Tuple<string, int>> ScrollWithCount;
public string ItemId ;
public string UserId;
public ItemChangeType ItemChangeType ;
public InventoryChangeSet()
{
}
}