我正在使用队列,blob存储和SQL Azure开发Azure应用程序。我们预计一些客户将不愿意将他们的数据托管在云中(出于偏执或对可以存储数据的管辖区域的法律限制的原因)并且希望在位于他们自己的数据内的服务器上运行系统中心,在一台服务器上。使用SQL Server并构建blob存储的替代方案应该很容易,但Azure队列更复杂。我想使用开发结构是不可取的,因为MS文档说它必须以管理员身份运行。
我应该怎么做?
答案 0 :(得分:8)
我会在AzureQueues上添加一层抽象。
类似的东西:
public interface IQueueService
{
// will create if not exists
IQueue GetQueue(string name);
IQueue GetQueueIfExists(string name);
}
public interface IQueue
{
string Name { get; set; }
void AddMessage(SimpleMessage message);
void DeleteMessage(SimpleMessage message);
SimpleMessage PeekMessage();
void Clear();
}
等...
这应该会给你一个想法。然后,您可以提供两个实现,一个使用AzureQueues,另一个使用MS Queues(http://en.wikipedia.org/wiki/Microsoft_Message_Queuing)
您可以根据您是否在Azure上运行来选择实施。
我过去做过非常相似的事情。
答案 1 :(得分:1)
您无需在开发人员结构上运行即可访问azure资源。 Blob很容易通过网络访问,我相当肯定你可以使用表格和队列以及“http://'accountname'.queue.core.windows.net/”网址公开提供。
对于一个简洁的解决方案,您应该查看Azure AppFabric服务总线,它基本上允许您将内部应用程序Web服务端点连接或“投影”到云中,它基本上是一个中继服务。 (这听起来很神奇,但实际上非常简单)。您可以使用相同的Service Bus为Azure Worker角色服务提供公共Url端点。
http://msdn.microsoft.com/en-us/library/ee732537.aspx
http://www.microsoft.com/windowsazure/appfabric/overview/default.aspx