我们有一个面向公众的休息api,刚开始将其移动到Azure。该体系结构现在使用命令模式:web api将http请求封装到消息队列,然后另一个应用程序处理该消息。最重要的是必须按提交顺序处理http请求。 我的问题是如何利用Azure中的可伸缩性的优势。如果我使用托管web api的Web角色并打开Web角色的多个实例以获得高性能,我如何确保多个实例将请求放入队列存储(或服务总线或表存储)中提交的顺序?
答案 0 :(得分:0)
如果您此刻没有使用任何自定义同步机制,那么API是在一个实例中运行还是在多个实例中运行应该没有任何区别。您唯一需要做的就是使用Service Bus队列来确保FIFO behavior代理消息。在这种情况下,命中队列的第一条消息将首先处理,依此类推。
如果您正在考虑在REST API中对http请求使用某些同步机制,那么您将失去可伸缩性和性能,因为所有请求都将变为同步,并且无论您拥有多少个角色实例,都只会处理一个请求一次。希望这能为你提供一些思考的食物。