2016-09-27 2 views
2

우리는 MS SQL 서버 데이터베이스에 의해 백업 된 우리의 응용 프로그램을위한 다중로드 IIS 웹 서버를 가지고 있습니다. 우리는 응용 프로그램 구성 정보를 데이터베이스에 저장합니다. 응용 프로그램이 실행되는 동안 자주 구성을 변경하고 변경 사항을 다른 웹 서버에 전파해야합니다. 이것을 할 수있는 좋은 방법이 있습니까? 필자는 SignalR (다른 서버에 경고를하기 위해 변경이 발생했으며 구성을 새로 고쳐야 함)을 통해이를 수행했지만 SignalR은 항상 안정적인 것은 아니며 때로는 한 서버가 메시지를받지 못합니다. 더 나은 해결책이 있습니까? IIS 웹 서버 구성 동기화

은 지금 당신이 응용 프로그램 수준 구성 변경을 전파 할 필요 이해

+0

Node.Js + Socket.IO를 사용해 보셨습니까? –

+1

@vishwaratna SignalR과 완전히 다른 기술 스택을 권장하는 이유는 기존의 기술 스택에서 사실상 똑같은 일을합니까? –

답변

0

를 업데이트 해 주셔서 감사합니다.

언급 한대로 SignalR을 사용할 수 있습니다. 이렇게하려면 웹 서버 연결을 호스팅하는 서버가 있어야하지만 "즉시"의 이점이 있습니다.

요구 사항이 단순하면 단기 메모리 캐시로 충분할 수도 있습니다.

그 이상인 경우 이벤트 대기열 (MSMQ, RabbitMQ)을 살펴 보는 것이 좋습니다. 이 모델에서 구성을 변경하는 인스턴스는 백그라운드 스레드에서 다른 인스턴스가 소비 할 수있는 이벤트를 큐에 게시합니다.

원래 대답은

Microsoft Web Deploy이 작업을 수행하기 위해 지어졌습니다. 또한 응용 프로그램 풀 설정 및 SSL 인증서까지 서버 간 동기화 사이트를 지원합니다.

IIS 설명서 사이트에는 사용 사례와 관련된 특정 페이지가 있습니다 (Synchronize IIS).

이 웹 배포를 구성과 관련된 많은 그래서 내가 여기에 모든 것을 설명하려고 시도하지 않습니다이지만, 후손이 될 것입니다 원격 시스템에 로컬 사이트를 동기화하는 명령을 추론 :

msdeploy.exe -verb:sync 
      -source:apphostconfig="Default Web Site" 
      -dest:apphostconfig="Default Web Site",computername=Server1 

가로

완전히 다른 방법 (명령은 읽기 쉽도록 여러 줄에 걸쳐 분할되었다), 당신은 또한 Powershell Desired State Configuration 또는 Chef 같은 "풀 구성"시스템을 사용할 수 있습니다.

+0

제대로 이해했다면, 현재 문제가되지 않는 초기 서버/IIS 구성을 동기화하는 것입니다 (도로를 들여다 볼 필요가 있음에도 불구하고). 내 문제는 지금 사용자가 구성 (데이터베이스에 저장되어 있음)을 변경하고 변경을받은 서버가 변경을 인식하지만 IIS를 다시 시작하지 않고 다른 웹 서버에 구성 변경을 알릴 필요가 있음 – jwerfel

+0

@ jwerfel 내 대답이 업데이트되었습니다. –

+1

@ richard-szalay 응답 주셔서 감사합니다. 지금은 몇 가지 웹 서버 만 가지고 있기 때문에 SignalR을 계속 사용할 것입니다.하지만 고급 큐를 사용하는 방법을 살펴 보겠습니다. – jwerfel