2012-03-22 38 views
0

嗨我正在开发基于Azure的GPS记录器应用程序。需要关于基于Azure的GPS记录器应用程序的体系结构建议

的功能包括在Web浏览器谷歌地图的位置的实时更新和报告生成

我已决定于具有WorkerRole获取传入TCP GPS数据,并把它放在表(对未来的报表生成)和一个队列(用于通过WebRole显示具有最新坐标的地图)。

但是让Worker,Web角色整天保持活跃状态​​并保持等待数据输入将会浪费资源并降低成本。

我期待数据每10秒钟来一次,每天只有几个小时,随机。

有没有其他办法来检查数据输入并启动辅助角色?或者某种调度可能?

如何优化应用程序。

问候, 阿尼尔

回答

0

我需要更多地了解你的应用程序;但是有一些事情我可以在开始时抛出去让你走。

你需要怎样的“实时”处理?

1)你可以运行一个XS实例,它什么也没做,但是唤醒了大型工作者角色。当它不需要潜在的时候仍然运行,但XS几乎没有成本。

2)从本地检查队列,并部署一个辅助角色。但是这会导致每次部署角色的延迟时间为15分钟。因为你每小时收费15分钟后拿下来15分钟就没有意义了,你可以把它留在整整一个小时。 3)计划任务内部部署每天晚上部署您的工作人员角色,从队列中读取当天建立的信息,完成工作并终止部署。

我想说的解决方案3将是你最好的解决方案,如果处理没有需要“实时”

希望这些帮助。其他人也可以ping我,我很乐意参与更深层次的活动,或者指引我们的实地团队中的某些人为您提供更多帮助。

查找我的Twitter,LinkedIn等

+0

有没有使用本地的任何教程?如何设置调度程序并终止部署? – 2012-03-22 08:54:07

+0

谷歌地图上实时显示的处理时间应该在10秒以内。报告生成可能需要一些时间。 – 2012-03-22 09:05:12

+0

在我看来,使用调度程序会降低Azure的高可用性。你选择一个xs实例来触发更大的工作人员听起来像是一个更好的选择 – 2012-03-22 20:27:18

0

我能想到这样做将是对-PREM运行的监测过程,当它检测到的数据,它可以将应用程序部署到Azure以最好的方式处理它。完成后,删除应用程序。您可以使用Azure的PowerShell命令做到这一点,看看:

http://wappowershell.codeplex.com/

0

我不认为启动和停止您的服务真的是你想要做什么实际的。基本上你想要一直提供你的服务,但不想为他们付钱。

如果您担心成本问题,我建议的唯一方法就是如果您的工作人员角色在80以外的端口上运行,请在您的Web角色中运行它。我的意思是把你目前在你工作角色的RoleEntryPoint中做的所有事情放在Web角色的RoleEntryPoint中。它应该没有任何代码更改。这样你只需支付一套实例,而不是两套。

相关问题