我们即将开始研究并行云处理应用程序,我正在寻找良好的资源如何设置。让我设置上下文:
我正在寻找资源来帮助我回答以下问题:
或者 - 是否已经有了开箱即用的东西?我正在寻找“模式的企业应用程序架构”,但专门针对扩展/并行/云处理。
有什么想法吗?
修改 谢谢-1。万一你有疑问,我用谷歌搜索它,我搜索了PluralSight,我查看了Azure视频。我没有遇到任何描述过程控制器/处理器设置的模式。
答案 0 :(得分:3)
正如@JuneT所提到的,请查看Cloud Design Patterns
指南。我会推荐评论中提到的Leader Election
模式。
其他一些想法:
Lease Blob
功能。Windows Azure Diagnostics
作为监控这些实例运行状况的方法。 Windows Azure Diagnostics
还支持自定义性能计数器,您可以使用它来监控每个实例的有效性。对于扩展,您可以依赖门户网站中提供的Windows Azure Auto Scaling
功能,或者从Paraleap软件中查找第三方解决方案,例如AzureWatch
。负责扩展的过程不应该是解决方案恕我直言的一部分。它应该坐在外面的某个地方。所以事件的一般顺序可能是:
答案 1 :(得分:1)
我认为你根本不需要控制器。什么业务流程将数据加载到数据库中?无论这个过程是什么,它都可以在队列中填充关于需要生成哪些PDF的消息。
然后,您希望拥有一个具有N个服务器的工作者角色,这些服务器基本上一直在查看队列,如果存在,则从队列中拉出消息,处理它们(即:生成PDF)并从队列中删除消息
Azure的本机基本自动缩放等自动扩展解决方案,或者像AzureWatch这样功能更强大的解决方案,可以在队列中包含消息时创建额外的服务器,并在队列耗尽时删除不需要的服务器。
这是在N个实例之间分配负载的非常标准的方法。可以通过查看队列并查看其中剩余的消息来衡量进度。