我有一个正在运行的系统,它使用基于Agatha-RRSL的请求-响应接口处理短时间和长时间运行的操作。
现在我们想做一点改变,以便能够通过Json格式的网站发送请求,所以我尝试了许多支持Json的REST服务器实现。REST服务器将由一个模块或“搁板”处理,另一个模块将是处理模块和最后的NoSQL数据库运行器模块。
为了在REST和processing模块之间进行交流,我考虑使用servicebus,但我们有两种类型的请求:在1-2秒内执行工作的短请求和在1分钟内完成工作的长请求。
servicebus是这项工作的正确选择吗?我正在考虑为长时间运行的op返回一个“响应”,其中包含一个令牌,该令牌可用于请求新请求的操作状态和结果。问题是,为了完成http响应,必须像同步请求一样使用大部分请求。
当我必须返回大量对象时,我认为响应大小(在MSMQ消息传输上)也有问题
有什么提示吗?
发布于 2011-09-09 15:19:44
NServiceBus并不真正适合请求-响应消息传递模式。它更适合于异步发布-订阅。
编辑:为了实现一种请求响应,您需要双向发送消息,但包含三个逻辑步骤:
因为这些步骤中的每一个都是以隔离和异步的方式发生的,所以在客户端发送请求和接收响应之间不会强制执行有意义的SLA或超时。但这对于可能需要几分钟才能完成的大型处理作业很有效。
此外,两个消息中都需要存在一个可用于将请求绑定到响应的通用值。否则,客户端可能会发送多个请求,并接收多个响应,而不知道哪个响应是针对哪个请求的。
所以你可以用NServiceBus来做这件事,但这需要更多的思考。
此外,NServiceBus使用MSMQ作为底层传输,而不是http。
https://stackoverflow.com/questions/7358204
复制相似问题