【问题标题】:Scala + Play + Akka. Is there a need for Backbone.js?Scala + Play + Akka。是否需要 Backbone.js?
【发布时间】:2012-08-02 03:32:44
【问题描述】:

我的后端在 Postgres 中。我正在使用 Scala 来构建它的 API。

每当数据库发生变化时,我都希望我的 chrome 扩展能够得到通知。我对此有几个问题:

  1. 我应该在这里实现 websocket 还是进行长轮询?
  2. 如果是 web-sockets,有没有什么好的例子说明我如何使用 scala + play + Akka 和 javascript 来做到这一点?
  3. 我相信我必须实现一种称为观察者模式的东西,如果数据有任何变化,它会通知我的 chrome 扩展。我应该遵循任何其他模式来以最小的数据库开销完成这样的事情。
  4. 我应该使用 Redis 还是 RabbitMQ 来处理这个特定的通知部分?

【问题讨论】:

  • Play 随几个示例应用程序一起分发。我发现“WebSocket Chat”示例程序对学习处理 Scala/Play/Akka/JavaScript/WebSockets 非常有帮助。
  • 如果您的通知不是“实时”(=每隔几秒),您可能需要考虑只进行“拉动”并使用新状态更新浏览器操作按钮每 X 分钟/小时/天。
  • 拉取通知将是实时的。因此问题。

标签: javascript postgresql scala google-chrome-extension redis


【解决方案1】:

1) 我会使用http://socket.io/

3) 这是一个有趣的问题。观察者模式通常用于前端。我建议您查看这篇文章http://addyosmani.com/largescalejavascript/。它帮助我更好地构建我的应用程序。它基本上是带有 EventBroker/Mediator 的 Pub/Sub 模式。理想情况下,将发布者和订阅者解耦。您可以将 EventBroker 放在您的应用程序命名空间中。通过这种方式,您可以从模块访问消息总线,而无需一直通过模块传递引用。

4) 我们在具有类似 pinterest 功能的网站上使用 redis 进行实时/实时通知。我对 redis 的性能印象深刻。

【讨论】:

    猜你喜欢
    • 2014-09-01
    • 2013-07-19
    • 2018-10-24
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多