聊天服务和持久性

时间:2014-08-02 13:23:15

标签: java concurrency playframework-2.0 webserver akka

我打算写一个简单的1-1聊天服务。我选择使用Play!框架(Java Web框架)。
我们假设一个聊天服务器正在为两个用户服务,突然服务器崩溃了。

这是我需要考虑的事情吗? 预计会发生多少次? (平均用于聊天服务器)。

最重要的问题:
如何处理这种情况?从技术上讲,两个用户都应该无缝地转移到云上的另一个节点+我想保存用户的状态和与聊天会话相关的其他信息

脚注:

  • 我听说过一种名为Akka的工具,但乍一看,它看起来像一个重要的工具,应该深入学习。
  • 我希望我的问题不属于"广泛问题"。我认为它非常具体和灵活。

1 个答案:

答案 0 :(得分:3)

Akka拥有出色的群集支持,您所描述的内容似乎是Akka Cluster Singleton的一个很好的用例。 Akka将确保聊天服务器的实例始终在您的群集中运行。如果你想要保持用户的状态,你也需要使用Akka Persistence,理想情况是在后端使用分布式日志。

根据我的经验,Akka使用起来非常轻松有趣,但您需要先解决一定的学习曲线。

因为你想使用Play使用Akka是有意义的,因为Play是基于Akka构建的,所以集成将非常无缝,你已经在你的项目中拥有Akka。