Microsoft Azure上的实时应用程序

时间:2011-12-13 09:12:25

标签: wcf azure message-queue azure-sql-database azure-worker-roles

我正在开发一个实时应用程序并在Azure上构建它。

这个想法是每个用户都会报告一些关于他自己的事情,所有其他用户应该立即看到它(他们每隔几秒左右轮询一次服务以获取新信息)

我现在的方法是在WCF REST服务中使用Web角色,我在没有工作者角色的情况下写入数据库(SQL Azure),以便立即写入。

我认为可能使用辅助角色和队列进行写作可能更具可扩展性,但可能会干扰服务的实时性。 (worker角色可能不会立即从队列中获取作业)

这是真的吗?我该怎么回事呢?

由于

2 个答案:

答案 0 :(得分:1)

虽然队列会增加一些延迟,但您可以扩展工作者角色实例的数量来处理大量的消息。

您还可以通过一次获取多条消息来优化队列读取。由于单个队列的可扩展性目标为500 TPS,因此您可以在读取时超过每秒500条消息。

您可能会查看缓存以缓冲最新的用户更新,因此在轮询发生时,您的服务将从缓存而不是SQL Azure中读取。随着信息量的增加,这可能会有所帮助。

答案 1 :(得分:0)

您可以查看SignalR,它不支持开箱即用的场方案,但应该能够使用内部端点调用来更新每个实例,使用Azure Service Bus,或使用AppFabric缓存。这样您就可以获得Push方案而不是Pull方案,因此您不必轮询端点以获取潜在更新。