Windows Azure和第三方Windows服务

时间:2012-07-08 09:03:42

标签: azure azure-web-roles

我正在开发一个网站,我打算使用单个Web角色在Windows Azure中运行。该站点将使用Sphinx搜索引擎,该引擎需要作为Windows服务运行。所以,我的问题是......是否可以在Web角色中安装Sphinx Search Windows服务。

从我最初对Azure的研究中我认为“是”因为Web角色是运行IIS的VM。因此,我应该能够远程进入,安装服务,它应该工作。 :)

这听起来不错吗?

3 个答案:

答案 0 :(得分:1)

通过RDP安装软件不是Web / Worker角色实例的可行解决方案,因为这些更改不会持久存在。您需要从启动脚本或OnStart()安装它。由于您希望作为服务安装,这意味着启动脚本,因为它需要提升权限。注意:安装程序必须支持无人参与模式,其中所有参数都是通过命令行指定的,没有人为干预。

可扩展性如何?如果您运行了多个Web角色实例,sphinx可以跨两个实例运行吗?根据我的阅读,它支持符合ODBC的数据库,您可以将它用于Windows Azure SQL数据库。如果是这种情况,两个sphinx引擎可以在访问同一数据存储的两台不同机器上运行吗?如果是这样,这听起来像是一个可行的解决方案。

如果安装无法自动化,或者您需要其他类似MySQL的东西,您可能需要考虑将sphinx搜索引擎放入虚拟机(2012年6月新增)。现在,您可以将Windows 2008 Server,RDP旋转到其中,然后根据您的需要进行配置。

答案 1 :(得分:0)

严格说是,你可以这样做。但是,这假设您将在一个VM实例上运行,并且该实例永远不需要重新启动。

您应该考虑将Azure工作者角色用于通常作为Windows服务存在的任何功能。

答案 2 :(得分:0)

在阅读了你的答案并考虑了一些之后,我认为放弃安装服务的想法将是最好的行动方案。我一直在寻找Lucene.NET的API(对于Sphinx来说可能是相同的),并且可以在代码中封装索引的编写/管理等,因此不需要服务。

对于Azure,有一个库,用于管理使用本地和Azure存储的索引文件,这可能是有用的。我读过的方案表明,可以有一个Web角色来处理HTTP请求并执行搜索,而一个Worker Role可以通过队列接受DB更改,并让它们将它们写入索引。

相关问题