"데이터베이스 대신 응용 프로그램 디자인 수준에서 솔루션을 찾아야합니다."-이 경우 DB 서버가 4 개 뒤에 있다는 사실은 부적합합니다.
응용 프로그램 수준에서 해결되어야하므로 이러한 응용 프로그램 서버는 일부 미디어를 통해 통신해야합니다. 다른 사람들이 이미 말했듯이, DB는 정상적인 선택이지만, 귀하의 요구 사항은 그것을 배제합니다.
따라서, 앱 서버는 모두이 보통이다 '진실'
무엇에 동의하도록 (예를 들어,이 Paxos은 꽤 잘 알려져 있습니다) 어떤 합의 확인 프로토콜을 자기들끼리 의사 소통을하고 구현 할 수 있어야합니다 인프라 수준에서 완료되고 앱 자체에서는 완료되지 않습니다. 일부 분산 캐시 (예 : memcached 또는 redis 클러스터 -하지만 후자는 아직 준비되지 않음)를 사용하는 것이 좋지만 다른 요구 사항 (내구성 등)에 따라 다릅니다. 또한 IMO는이 문맥에서 데이터베이스 정의에 해당합니다. 즉, 앱 수준이 아닌 인프라 수준입니다.
'응용 프로그램 디자인 수준에서 솔루션 찾기'요구 사항은 다소 복잡한 것으로 보이고 기능 요구 사항에 의해 구동되지 않거나 불량한 비 기능 요구 사항에 의해 유도되지는 않지만 잘못된 것일 수 있습니다. 나는 이것이 성능 요구 사항에 의해 좌우되는 것을 상상할 수 있지만 이것은 성능을 쉽게 떨어 뜨릴 것입니다.
미러링 또는 복제라고하며 일반적으로 데이터베이스 수준에서만 해결해야합니다. 너 자신을 위해 무엇을 시도 했는가? – CodeCaster
에 몇 가지 검색어가 있습니다. 1.로드 밸런서 뒤에있는 앱 서버입니까? 이상적으로 그것은 그렇게되어야합니다. 2. 4 개의 DB 서버가 미러입니까? – Jack
@CodeCaster : 답장을 보내 주셔서 감사합니다. 그러나 데이터베이스 대신 응용 프로그램 디자인 수준에서 솔루션을 찾도록 요청 받았습니다. 이 문제에 대해 기존의 GoF 패턴을 구현할 수있는 아이디어가 있습니까? – SAM