首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于长时间操作的http接口

用于长时间操作的http接口
EN

Stack Overflow用户
提问于 2011-09-09 15:03:30
回答 1查看 149关注 0票数 0

我有一个正在运行的系统,它使用基于Agatha-RRSL的请求-响应接口处理短时间和长时间运行的操作。

现在我们想做一点改变,以便能够通过Json格式的网站发送请求,所以我尝试了许多支持Json的REST服务器实现。REST服务器将由一个模块或“搁板”处理,另一个模块将是处理模块和最后的NoSQL数据库运行器模块。

为了在REST和processing模块之间进行交流,我考虑使用servicebus,但我们有两种类型的请求:在1-2秒内执行工作的短请求和在1分钟内完成工作的长请求。

servicebus是这项工作的正确选择吗?我正在考虑为长时间运行的op返回一个“响应”,其中包含一个令牌,该令牌可用于请求新请求的操作状态和结果。问题是,为了完成http响应,必须像同步请求一样使用大部分请求。

当我必须返回大量对象时,我认为响应大小(在MSMQ消息传输上)也有问题

有什么提示吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-09 15:19:44

NServiceBus并不真正适合请求-响应消息传递模式。它更适合于异步发布-订阅。

编辑:为了实现一种请求响应,您需要双向发送消息,但包含三个逻辑步骤:

  1. ,以便您的客户端发送请求数据的消息。
  2. 服务器将接收消息,对其进行处理,构造包含数据的返回消息,并将其发送到客户端。
  3. 客户端随后可以处理数据。

因为这些步骤中的每一个都是以隔离和异步的方式发生的,所以在客户端发送请求和接收响应之间不会强制执行有意义的SLA或超时。但这对于可能需要几分钟才能完成的大型处理作业很有效。

此外,两个消息中都需要存在一个可用于将请求绑定到响应的通用值。否则,客户端可能会发送多个请求,并接收多个响应,而不知道哪个响应是针对哪个请求的。

所以你可以用NServiceBus来做这件事,但这需要更多的思考。

此外,NServiceBus使用MSMQ作为底层传输,而不是http。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7358204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档