通过 Azure/AWS 消息队列 ASP.NET 到 Akka



我对分布式应用程序设计完全陌生,正在尝试做这个测试应用程序,以了解它们如何协同工作。因此,我将不胜感激对以下应用程序设计的任何反馈。

问题:

设计回合制多人游戏。

可能的实现:

我正在考虑以下高级实现/工作流:

Client (Mobile/Web/etc) <-> SignalR ASP MVC website <-> Azure/AWS MQ <-> Akka actors <-> DB

每个连接的客户端在 Akka 后端中都有一个相应的Player参与者。

客户端的所有请求/响应都将通过 SignalR ASP 前端,并通过消息队列委派给相应的后端参与者。

对游戏的所有移动/状态查询都将由这些Player参与者对后端中的相应Game参与者进行,该参与者将处理数据库中的游戏状态更新。

问题:

这种设计有意义吗?这是 Akka 的正确用例吗?

这种设计当然是可能的(我不会将用例限定为正确或不正确),尽管 SignalR/Azure/DB 不是先验的必要组件:您也可以使用 Play 框架构建前端(例如),使用 Akka 集群和分布式 PubSub 进行消息传递,使用 Akka Persistence 存储游戏世界的状态。但是您可能选择的任何组合都应该可以正常工作。如果你对使用Akka"全力以赴"的样子感兴趣,可以看看Activator中的反应式地图教程。

最新更新