扩展长期运行的Web服务

时间:2016-02-11 23:00:30

标签: web-services load-balancing

我正在考虑创建一个执行长时间运行的Web服务。设计这些与负载均衡器配合使用的最佳方法是什么?除了编写自定义队列之外,我想不出任何方法。

1 个答案:

答案 0 :(得分:1)

这正是你应该做的。您通常希望您的Web服务调用是快速请求/响应。因此,调用Web服务,让Web服务队列工作,然后让工作进程从队列中获取消息并处理它们。

这是要走的路,排队长时间运行的流程允许系统扩展,允许您在流程失败时添加恢复逻辑,允许您通过添加额外的工作人员来快速扩展以处理队列,最重要的是不会阻止客户等待回复。

REDIS(http://redis.io/)在过去几年中一直是我的选择,如果您使用Azure或AWS,他们也有消息服务。

您还可以使用websockets在完成进程时通知客户端,以使UI状态保持在循环中。