Partilhar via


Modelo de programação (cache do Windows Server AppFabric)

O modelo de programação do Windows Server AppFabric é personalizado pelo padrão de programação cache-aside. Isso significa que, se os seus dados não estiverem presentes no cache, o seu aplicativo, não o cache distribuído do AppFabric, precisará recarregar os dados no cache a partir da fonte de dados original. O código do aplicativo utiliza a classe DataCache, também conhecida como um cliente de cache, após ser instanciado.

Estratégia de cache

O código do aplicativo deve ser projetado, para que possam funcionar independentemente do cache, e não exige que os dados armazenados em cache estejam sempre disponíveis. Como os dados no cache são preservados de maneira durável, há a possibilidade de os dados ficarem indisponíveis.

O recurso de alta disponibilidade ajuda a proteger contra falhas de processo e computador em hosts de cache individuais enquanto o cluster estiver sendo executado. Porém, poderá haver cenários quando todo o cluster ficar inativo. Por exemplo, se um de vários hosts principais ficar inativo, todo o cluster será desligado. Para obter mais informações, consulte Hosts principais e gerenciamento de cluster (cache do Windows Server AppFabric).

Há vários outros motivos para que o seu código possa encontrar um erro de cache: o item de cache pode ter expirado ou ter sido removido, o servidor de cache pode ter sido reinicializado, o serviço de cache pode ter sido reiniciado ou o cluster de cache pode ter sido reiniciado acidentalmente. Independentemente da razão, o código do seu aplicativo precisará estar apto para acessar o banco de dados (ou outra fonte de dados) se o objeto armazenado em cache não estiver disponível.

Clientes de cache

Para armazenar dados no cache, use o método GetCache ou o método GetDefaultCache para retornar um objeto DataCache. Após ser instanciado, esse objeto DataCache será denominado como cliente de cache.

Dica

Por razões de desempenho, recomendamos que você minimize o número de objetos DataCacheFactory criados em um aplicativo habilitado por cache. Armazene o objeto DataCacheFactory em uma variável que esteja disponível a todas as partes do aplicativo que utiliza o clientes de cache.

Há várias opções disponíveis para configurar o comportamento do cliente de cache. Você pode especificar essas configurações de maneira programática, com um arquivo de configuração do aplicativo ou utilizando ambas as abordagens. Para obter mais informações sobre clientes de cache e as definições de configuração de aplicativo disponíveis, consulte Clientes de cache e cache local (Cache do Windows Server AppFabric) e Definições de configuração do aplicativo (Cache do Windows Server AppFabric).

É possível que mais de um cliente de cache acesse um único cache ao mesmo tempo. Os aplicativos que são executados em computadores diferentes podem fazer isso, instalando um cliente de cache que esteja configurado para utilizado o mesmo cache. O exemplo a seguir de código demonstra esse conceito. Observe que os comentários são usados para identificar o código que está sendo executado em instâncias diferentes de cliente de cache.

'Each application has a similar GetCache method call
Dim myCacheFactory As DataCacheFactory = New DataCacheFactory()
Dim catalog As DataCache = myCacheFactory.GetCache("catalog")

'One cache client saves an object to the catalog named "toy101"
Call catalog.Put("toy101", New ToyObject("toy101", "Playschool"))

'The same or different cache client retrieves the object
Dim toy As ToyObject = CType(catalog.Get("toy101"), ToyObject)

'The same or a different cache client removes the object
catalog.Remove("toy101")
//Each application has a similar GetCache method call
DataCacheFactory myCacheFactory = new DataCacheFactory();
DataCache catalog = myCacheFactory.GetCache("catalog");

//One cache client saves an object to the catalog named "toy101"
catalog.Put("toy101", new ToyObject("toy101", "Playschool"));

//The same or different cache client retrieves the object
ToyObject toy = (ToyObject)catalog.Get("toy101");

//The same or a different cache client removes the object
catalog.Remove("toy101");

Consulte também

Conceitos

Diagrama de arquitetura física de cache do Windows Server AppFabric
Diagrama de arquitetura lógica de cache do Windows Server AppFabric
Desenvolvendo um cliente de cache (cache do Windows Server AppFabric)

  2011-12-05