【问题标题】:Real-time auction updates - Comet? Tornado? ActiveMQ?实时拍卖更新——彗星?龙卷风?活动MQ?
【发布时间】:2011-11-28 05:37:09
【问题描述】:

我正在决定如何编写在线拍卖应用程序。我想为网站用户提供实时更新。我的背景是 LAMP(尽管在我的例子中,'P' 对于 Perl 来说比 PHP 更适合)。我考虑过 ActiveMQ,但我想知道是否有更好的选择。

我主要关心的是可扩展性和速度。它可以同时进行多个拍卖,[希望]有许多用户参与每次拍卖。无论我决定采用何种解决方案,都必须适应这种情况。当然,这都是理论上的,所以我不知道我可能有多少并发用户,但我希望有办法支持数万用户。

另一个问题是易于实施。在过去的几天里,我一直在阅读文档和教程,到目前为止,没有什么事情比处理后背有点痛苦,这实际上是导致我在这里寻求一些建议的原因。

我希望使用 Web 框架,例如 Codeigniter (PHP) 或 Catalyst (Perl),因为我打算支付一两个承包商的费用来帮助完成大部分编码工作,我喜欢这样的想法有一个框架可以在某种程度上强制执行设计模式。但是,我对此进行的研究越多,我只是没有看到明显的解决方案 1) 使用框架,以及 2) 提供实时拍卖更新(除了 Tornado,我猜 - 也许我正在回答我自己的问题。;))。

因此,尽管如此,除了使用轮询(我对这样做并不感兴趣)之外,有没有一种方法可以让我使用 Perl 或 PHP 等语言为我的服务器完成这些实时更新 -侧码?我知道 ActiveMQ 支持 STOMP,而且我实际上在我的本地机器上运行它(使用 Jetty,因为它需要一个 servlet 来发布/使用来自客户端 javascript 的消息),但是这里有更好的选择吗?

很抱歉我没有更直接的问题,但是在看了几天的文档和教程之后,我比以往任何时候都更加迷茫!

【问题讨论】:

    标签: real-time comet activemq tornado updates


    【解决方案1】:

    您的部分问题是您将各种概念混合在一起。如果我没看错,你有一个问题陈述:

    我正在建立一个在线拍卖网站,并希望确保我的访问者能够实时更新他们正在查看的物品的价格。

    现在在浏览器和服务器之间,您可能会使用 Comet 样式的请求模式来处理通信,您也可以将 socket.io 视为备用模式。此轮询将需要一个能够处理大量同时打开的连接的服务器,Tornado 是一个很好的候选者(还有其他的,但考虑到您询问与 Tornado 的关系,这很好)。

    现在我们已经从 1000 多个浏览器发展到少数 Tornado 服务器,您需要一种在它们之间进行通信的方法。在最后一个发布/订阅消息模式中,您有几个选择:

    • RabbitMQ (AMQP)
    • ZeroMQ
    • Redis 发布/订阅

    这三个都是不错的选择,各有优缺点。就我个人而言,我在不同的项目中使用过 Redis 和 Rabbit,并且只是在玩弄 ZeroMQ。消息代理是一个完整的决策树,它将基于您可用的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多