4

我参加了Jim Webber的演示,在他的演示中,他说 ATOM 在许多情况下是 JMS 的一个很好的替代品。由于 JMS 是一种消息传递服务,我对此很好奇。你们使用 ATOM 作为消息服务吗?它可靠且可扩展吗?

JMS 的最大优点是它使用 push 方法(服务器通知新消息)而不是 pull 方法(客户端每 X 毫秒不断请求新消息)。我认为对于“Web 2.0”应用程序,这种方法很酷,但对于“企业”应用程序,推送方法的可扩展性要高得多。你们有什么感想?

4

3 回答 3

3

为什么你认为 push 比 pull 更“可扩展”?

其次,这是一个相当广泛的问题,如果轮询间隔没有意义,一些实时应用程序必须使用推送(我需要亚秒级响应时间并且不想每 100 毫秒轮询一次)。但在大多数情况下,我总是发现 pull 更具可扩展性且更易于实现。我们将 Atom Pub/Syndication 格式用于“消息”类型的基础架构——它允许客户端赶上他们可能错过的旧消息(使用 JMS 更难做到)。将消息发布到 Atom 集合(提要),然后每当用户启动他们的客户端时,他们就可以轮询提要并查看新内容。也许他们只关心每小时、每天查看更新——所有这些都在客户端更容易完成——在发布消息的服务器和使用它们的客户端之间没有任何交互。

于 2009-05-26T19:19:19.837 回答
2

您正在将苹果与橙子进行比较。

JMS 是 Java 程序使用可靠的点对点和发布-订阅消息传递代理的标准 API。

Atom 是一种基于 XML 的数据格式,用于表示新闻提要。

如果您愿意,可以使用 JMS 发送包含 Atom 格式数据的消息。但是,这并没有多大意义,因为 Atom 提要的内容包括让客户确定哪些提要项目是新的以及他们上次轮询时已经下载的信息。发布-订阅代理会为您执行此操作,因此发布-订阅通知可以只包含订阅者感兴趣的新信息。

于 2009-06-10T20:19:02.247 回答
1

Push 或 Pull 是否适用于给定问题在很大程度上取决于延迟要求、正在传输的数据量、节点可用性以及问题的其他特定属性。不要让任何人告诉你任何一个总是比另一个更好。

于 2009-05-26T19:47:18.640 回答