Azure WCF Web角色/工作者角色混淆..

时间:2012-11-17 00:19:07

标签: wcf azure azure-worker-roles webrole

我有几个硬件设备可以向云端发送大​​量数据。我需要将它们存储在云上,处理它们并根据分析的数据将一些状态报告发送给有兴趣查看这些结果的客户。客户是智能手机用户。

单个客户有兴趣了解一个或多个硬件状态报告。

我需要使用Azure进行可扩展,即能够监控1000个硬件。我需要云存储,云计算能力以及从许多硬件发送数据的能力,并向监控这些硬件的客户发送报告。

我是WCF和Azure的新手,任何有关如何使用WCF和Azure编写可伸缩应用程序的指导都非常有用。请解释它是如何可扩展的。我是否必须使用辅助角色/ Web角色?我有一些计算密集型的数据处理来生成客户感兴趣的报告。

沙市

3 个答案:

答案 0 :(得分:3)

听起来像一个有趣的项目...

您可以在WCF服务Web角色中托管WCF服务,该角色是一个Web角色,具有用于托管WCF服务的起始工件。

对于广泛的处理,您可以使用辅助角色。收到数据时,WCF服务cam会在Service Bus队列上放置一条消息,该队列将由worker角色接收,该角色可以异步处理数据。

对于数据存储,您可以查看Windows Azure存储中的表和Blob存储,或者如果需要关系存储,请查看Windows Azure SQL数据库。两种方法都有优点和缺点。

有很多技术需要评估,因此可能需要通过一些教程来了解最佳实施方案。 Windows Azure培训套件是一个很好的起点。

http://www.microsoft.com/en-us/download/details.aspx?id=8396

此致

艾伦

答案 1 :(得分:3)

您可以根据负载增加Web角色和辅助角色的实例进行扩展。 Azure角色(云服务)是无状态的(默认情况下不支持粘性会话),因此来自同一客户端的请求响应将平均分配给您的所有实例(循环)。

答案 2 :(得分:2)

@coolshashi。 默认情况下,一个Azure云解决方案可以包含5个不同的角色(Web或Worker的混合无关紧要)。每个角色都可以有多个实例。 例如:您的Web角色的7个实例可以构成您在服务总线队列上下订单的前端Web场。这些订单可能由您的工作者角色的2个实例读取,这些实例处理它们&把它们放到数据库中。

网络和网络之间的唯一区别worker角色是Web角色安装了IIS&开始。

根据您定义的某个指标(即:CPU使用或队列中的消息),可以轻松配置每个角色的实例数以动态更改。因此,该解决方案可以扩展到处理负载和缩小以便在不需要时省钱。

大多数Azure订阅(或帐户)最初限制为20个核心。这是为了防止您意外创建大额账单。如果您的解决方案需要更多,则与Microsoft快速聊天可以删除该限制,以便根据您的需要提供。