我是分布式应用程序设计的新手,我正在尝试使用此测试应用程序来了解它们如何一起工作。因此,我将非常感谢有关以下应用程序设计的任何反馈。
问题:
设计回合制多人游戏。
可能的实施:
我正在考虑以下高级实施/工作流程:
Client (Mobile/Web/etc) <-> SignalR ASP MVC website <-> Azure/AWS MQ <-> Akka actors <-> DB
每个连接的客户端在Akka后端都有一个对应的Player
actor。
客户端的所有请求/响应都将通过SignalR ASP前端,并通过消息队列委派给适当的后端actor。
所有对游戏的移动/状态查询都将由那些Player
个角色发送到后端的相应Game
角色,这将处理更新DB中的游戏状态。
问题:
这种设计有意义吗?这是Akka的正确用例吗?
答案 0 :(得分:1)
该设计当然是可行的(我不会将用例限定为正确或不正确),尽管SignalR / Azure / DB不是先验必需的组件:您也可以使用Play framework构建前端(例如),使用Akka Cluster和Distributed PubSub进行消息传递,使用Akka Persistence来存储游戏世界的状态。但是你可能选择的任何混合应该可以正常工作。如果您对与Akka“全押”的感觉如何感兴趣,可以查看Reactive Maps中的Activator教程。