【问题标题】:ServiceStack: replace a web service with a message queueServiceStack:用消息队列替换 Web 服务
【发布时间】:2013-06-05 10:25:54
【问题描述】:

我正在开展一个项目,该项目提供一些 API 以获取有关我们合作伙伴产品的信息。

对我们网站的每个搜索请求都必须向合作伙伴网站发出 n 个其他请求,收集和汇总产品数据,因此可能需要很长时间。

目前,由于 REST 服务受阻,我们遇到了一些性能问题,我正在寻找更好的解决方案来组织我们的产品搜索平台。

正如我所见,ServiceStack RedisMQ 可以为长时间通信提供异步解决方案。但是我有一些问题(因为我对 MQ 没有太多经验):

  1. 如何用 MQ 替换 REST 服务
  2. 如何从网页上的 MQ 获取信息(通过 REST,我可以使用任何合适的 JS 库,如 jQuery 并发出 ajax 请求)
  3. 如何为我的服务组织一个 MQ API,而不是我们的客户(在他们的站点上)可以使用的 REST。

【问题讨论】:

  • 你试过TPL吗?例如,Parallel.Invoke(()=>SearchSite1(),()=>SearchSite2());
  • 是的。但这些请求确实需要很长时间。

标签: .net rest servicestack message-queue


【解决方案1】:

我不确定您使用的是什么语言,所以我会尝试与语言无关。

我建议您应该让您的应用“流式传输”数据返回,而不是等待阻塞的 restful 调用返回。所有合作伙伴“获取”必须作为异步回调执行, 当结果到达时,您可以写回流。

恕我直言,切换到消息队列不会真正为您带来任何好处。在最基本的形式中,将消息队列视为分布式计算环境中的通信通道。传输机制可能会有所不同 - 但主要是队列是点对点通信机制。

【讨论】:

    猜你喜欢
    • 2013-12-31
    • 2013-06-06
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多