2011-01-20 6 views
6

우리는 "납"서버를 제거한 2 개의 서버로 구성된 AppFabric 클러스터를 테스트했습니다. 두 번째 서버는 오류와 그에 대한 요청에 제한 시간 :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.)

는 practive에서이 클러스터의 한 서버가 다운되면 그들은 모두가 내려갈 것을 의미한다. (우리는 여러 개의 AppFabric 캐시 서버를 서로 연결하는 Windows 클러스터를 사용하지 않습니다.)

단일 서버가 다운 된 경우에도 클러스터가 계속 작동해야합니다. 어떻게해야합니까?

(나는이 질문에 Serverfault을 borderlining됩니다 실현하지만, 개발자는이 알아야 이럴.)

답변

7

당신은 단일 서버 충돌 살아 남기 위해 캐시 적어도 세 리드 서버에서 AppFabric 캐시를 설치해야합니다. 리드 서버의 "대다수"가 다운 된 경우에만 클러스터가 다운되지만, 작은 글씨에서는 2 개 중 1 개가 다수를 구성한다고 설명합니다. 3 개의 리드 노드 클러스터에서 서버를 제거하는 것이 광고 된대로 작동하는지 확인했습니다.

2

일반적인 분산 시스템 개념. 앙상블에서 쓰기 또는 읽기 쿼럼이 발생하려면 2f + 1 개의 서버가 필요합니다. 여기서 f는 실패한 서버의 수입니다. 나는 appfabric 또는 CP (CAP 정리에서와 같이) 합의를 기반으로 한 시스템이 클러스터의 작업을 위해 일어날 필요가 있다고 생각합니다.

--Sai

+0

2 층 + 1 수식 "세컨더리"의 수는 무엇입니까? – UserControl

0

실제로 먹으 렴 Appfabric 아키텍처에 문제 그리고 그것은 "리드 호스트를"개념의 측면에서 오히려 혼란이다. 아이디어는 대부분의 리드 호스트가 실행되어 클러스터가 계속 실행되도록해야한다는 것입니다. 따라서 세 대의 서버를 보유하고 있다면 최소한 두 개의 주최자가 항상 서로 통신하고 서버 리소스를 소비해야합니다. 두 가지 모두 다운되면 전체 클러스터가 실패합니다. 모든 서버가 피어 (peer) 역할을하는 피어 - 투 - 피어 (peer-to-peer) 아키텍처를 사용하면 두 서버가 다운 된 경우에도 클러스터가 응용 프로그램 중단 시간없이 작동한다는 것을 의미합니다. NCache을 시도해보십시오

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

관련 문제