我正在使用队列,blob存储和SQL Azure开发Azure应用程序。我们预计某些客户将不愿意将其数据托管在云中(由于偏执狂或对存储数据的辖区的法律限制),并且希望在自己数据内的服务器上运行系统中心,在单个服务器上。使用SQL Server并构建Blob存储的替代方案应该很容易,但是Azure队列更为复杂。我猜想使用开发结构是不可取的,因为MS文档说它必须以管理员身份运行。
我应该怎么做?
最佳答案
我将在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();
}
等等...
那应该给你一个主意。然后,您可以提供两种实现,一种使用Azure队列,另一种使用MS队列(http://en.wikipedia.org/wiki/Microsoft_Message_Queuing)
您可以根据是否在Azure上运行来选择实现。
我过去做过非常类似的事情。