我正在使用队列,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上运行来选择实现。

我过去做过非常类似的事情。

07-24 22:19