9

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

每次数据库发生更改时,我都希望通知我的 chrome 扩展。我对此有几个问题:

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

1 回答 1

2

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

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

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

于 2012-08-11T07:03:30.620 回答