【问题标题】:Scalable chatroom using (playframework akka and websocket) [closed]使用(playframework akka 和 websocket)的可扩展聊天室 [关闭]
【发布时间】:2014-12-05 14:39:44
【问题描述】:

有人要求我使用 Play (java)、Akka 和 websocket 构建一个可扩展的聊天室。

Play 提供了一个sample,它可以满足我的需求,而且效果很好。

现在我需要处理缩放问题。我不熟悉游戏和扩展问题,所以我很难找到一个可以扩展的解决方案。或者至少证明样本可以扩展(我对此表示怀疑)。 我知道演员系统提供了良好的性能,但我如何确定它会扩展?

你们中的任何人都可以向我解释/向我提供解释如何构建真正可扩展的应用程序的链接吗?架构是什么?

我在 Heroku 上找到了 example,但我想要 Heroku 的替代品。也许 akka.cluster 是其中之一?

谢谢,

【问题讨论】:

  • 您可以试试我的示例:github.com/Yurii-Buhryn/play-akka-cluster-websocket-chat 这是将 play framework 2 应用程序 (java) 与 akka 集群集成的示例。它为规模系统添加新的播放节点提供了可能性。当一个新节点添加集群中的所有节点共享聊天消息时,无论哪个节点接收到消息。

标签: java playframework websocket akka scalability


【解决方案1】:

虽然这不是您正在寻找的技术堆栈,但scalable-chat 是一个 Scala 项目,它使用akka cluster 在后端扩展聊天室。它在前端使用的是 ScalaFX 客户端,而不是 Play,但原理和架构是相同的。

通信层使用带有 akka-stream 的 akka-io,并且计划在 websockets 可用时使用 akka-http。

不幸的是,该示例还没有显示使用多个聊天室进行扩展,但可以使用多个用户并使用 akka-persistence 与集群感知路由器的聊天历史记录。该项目的另一个计划是将cluster sharding 用于持久用户和聊天室参与者。

虽然这个例子没有给你一个完整的解决方案,但也许它可以为使用 Akka Cluster 构建一个可扩展的聊天室后端提供一些灵感。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 2012-03-15
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 2020-08-07
    相关资源
    最近更新 更多