2013-05-01 2 views
1

정적 저장소가 있고 메모리에 큰 XML 파일 구조가 저장되어 있으며 MVC 응용 프로그램에 한 번만로드됩니다. 응용 프로그램은 Azure (Paas)에서 2 개의 인스턴스로 호스팅됩니다. 우리는이 저장소에서 물건을 추가하거나 물건을 제거하는 데 사용되는 디자인 도구가 있습니다. 우리가 발견 한 문제는 일단 저장소가 추가되면 저장소를 뜯어서 다시 만들어야한다는 것입니다. 이것은 작동하지만 정적 리포지토리가 서버 A에서만 재생되고 서버 B에서는 새로 고쳐지지 않는 문제가 있습니다. 요청이 서버 B로 이동하면 사용자는 업데이트되지 않았기 때문에 변경 내용을 볼 수 없습니다. 두 인스턴스에서 IIS를 재설정하면 문제가 해결됩니다. 세션 상태를 사용하여 저장소를 저장하려했지만 데이터베이스 테이블에 값을 저장하는 사용자 지정 세션 공급자로 사용할 때 모든 페이지 요청에서 성능 문제를 일으키는 session_start 이벤트가 호출됩니다. 두 서버 모두에서 저장소를 업데이트하고 모든 최신 기술을 사용하는보다 세련된 솔루션을 가진 사람이 있습니까?Azure-static 저장소를 다시로드해야합니다.

답변

1

저장소를 저장하기 위해 역할 캐시를 사용하는 것을 고려 했습니까? (물론, 이미 수행 한 것처럼 계속 유지하십시오)?

기존 웹 역할의 메모리를 사용하거나 전용 캐시 역할을 만들 수 있습니다. 캐시는 모든 인스턴스로 확장되므로 각 인스턴스에서 동일한 데이터에 액세스하게됩니다.

한 걸음 더 나아가십시오 : 롤 인스턴스를 재부팅하는 동안 데이터 손실이 염려되는 경우 (인스턴스가 다운 될 때 데이터가 캐시에 더 이상 존재하지 않음을 의미 함) 고 가용성을 활성화 할 수 있습니다 캐시 네임 스페이스에. 이 시점에서 데이터는 인스턴스간에 복제되므로 인스턴스를 다시 시작할 때 생존 할 수 있습니다. 이 코드 (코드 샘플 링크)에서 갱신이를 유지하는 방법을 쉽게

enter image description here

+0

입니다 : 당신은 역할 속성의 동일 위치 (또는 전용) 캐시 설정을 찾을 수 있습니다

? MVC에서 처음으로 그것을 만드는 가장 좋은 "이벤트"가 될 것입니까? – chugh97

관련 문제