2011-01-20 15 views
6

Acabamos de probar un clúster de AppFabric de 2 servidores donde eliminamos el servidor "principal". El segundo servidor de tiempos de espera en cualquier solicitud para con el error:AppFabric Redundancy

Microsoft.ApplicationServer.Caching.DataCacheException: ErrorCode<ERRCA0017>:SubStatus<ES0006>: There is a temporary failure. Please retry later. (One or more specified Cache servers are unavailable, which could be caused by busy network or servers. Ensure that security permission has been granted for this client account on the cluster and that the AppFabric Caching Service is allowed through the firewall on all cache hosts. Retry later.)

En practive Esto significa que si un servidor del clúster cae, todos se van hacia abajo. (Tenga en cuenta que no estamos utilizando el clúster de Windows, solo vinculamos varios servidores de caché de AppFabric entre sí).

Necesito que el clúster continúe funcionando incluso si un solo servidor deja de funcionar. ¿Cómo hago esto?

(me di cuenta esta cuestión se borderlining Serverfault, pero en mi humilde opinión desarrolladores debería saber esto.)

Respuesta

7

Vas a tener que instalar el caché de AppFabric en al menos tres servidores de plomo para la caché de sobrevivir a una sola caída del servidor. Los documentos indican que el clúster solo disminuirá si la "mayoría" de los servidores principales desciende, pero en la letra pequeña, explican que 1 de cada 2 constituye la mayoría. Verifiqué que eliminar un servidor de un clúster de tres nodos principales funciona según lo anunciado.

2

Concepto típico de sistemas distribuidos. Para que se produzca un quórum de escritura o lectura en un conjunto, debe tener 2f + 1 servidores arriba donde f es la cantidad de servidores que fallan. Creo que los sistemas basados ​​en consenso de aplicaciones o de CP (como en el teorema CAP) necesitan que esto suceda para trabajar en el clúster.

--Sai

+0

¿cuál es el número de "secundarios" en 2f + 1 fórmula? – UserControl

0

Eso es en realidad un problema con la arquitectura AppFabric y es bastante confusa en términos del concepto "sin plomo anfitrión". La idea es que la mayoría de los hosts principales se ejecuten para que el clúster permanezca activo y en funcionamiento. Entonces, si tuviera tres servidores, tendría que tener al menos dos hosts principales comunicándose constantemente entre sí y consumiendo los recursos del servidor, y si ambos se desactivan, todo el clúster falla. La idea es tener una arquitectura de igual a igual en la que todos los servidores actúen como pares, lo que significa que, incluso si dos servidores fallan, el clúster sigue funcionando sin tiempos de inactividad de la aplicación. Trate NCache:

http://www.alachisoft.com/ncache/

Cuestiones relacionadas