Akka.NET + 光子服务器

Akka.NET + Photon Server

是否可以将 Akka.NET 与 Photon 服务器一起使用?

找不到关于此的任何信息。

这个解决方案的可扩展性如何?找到一些关于 Akka + Scala 游戏服务器的文章,但没有关于 Photon + Akka 兼容性的文章。

你绝对可以做到。在 photon 中创建一个超薄的 actor 系统,并通过 remoting/clustering 与您的后端服务 运行 Akka.

协作

这应该是一个非常可扩展的解决方案。如果你的系统设计得当,你将在前端获得 photon 的可扩展性,然后可以使用 Akka 创建一个弹性可扩展的后端集群,这应该非常适合你。

更新:从 OP 获得了有关预期用例的更多信息:"to use Akka for our backend services communication while photon directly connected to game client."


原始答案:

tl;dr 是的,它们似乎可以协同工作,尽管在这种情况下您可能会使用 Akka 来处理比网络层更多的核心游戏逻辑。

我没有使用过 Photon,但浏览了该站点,看起来您可以在 Photon 服务器上使用 Akka。不清楚的是 Akka 和 Photon 的网络功能可能会如何冲突,因为 Photon 似乎主要旨在为您包装和管理网络。 Akka.Remote & 集群也是如此,但级别较低(Akka 模块不会对你用它们做什么发表意见,而 Photon 的逻辑针对特定的游戏相关方法)。因此,当您转向多节点设置时,请密切注意那里。

Akka 的 networking/clustering 层,结合 Akka 是一个 distributed/concurrent 编程框架这一事实,表明您实际上可以使用 Akka 编写自己的游戏服务器。也就是说,您可以使用 Akka 创建类似 Photon 的东西。事实上,在过去的几个月里,我已经与几位工程师进行了交谈。

也就是说,我完全明白,如果 Photon 已经在做你想做的事情并且你知道这一点,你可能不想这样做。似乎 Photon 正在包装网络并内置了负载平衡和多人交互的逻辑。因此,您应该能够在其 RPC 框架的接收端使用 Akka,并使用 actor 轻松地对应用程序的其余部分进行建模。

试试看 tell us what happened in the community chat