나는 역사적으로 PHP/MySQL 스택에 구축 된 웹 응용 프로그램에서 작업하고 있습니다.상태 기반 웹 서버를 사용하는 것이 합리적입니까?
응용 프로그램의 주요 조작 중 하나는 전체 DB 테이블의 모든 행을 반복해야하는 많은 계산을해야했습니다. 말할 필요도없이 심각한 병목 현상이었습니다. 따라서 Java로 전체 프로세스를 다시 작성하기로 결정했습니다.
이렇게하면 두 가지 이점이 있습니다. 하나는 언어로서 자바가 PHP 프로세스보다 훨씬 빠르다는 것입니다. 두 번째는 Java 애플리케이션 서버 메모리에 전체 데이터 세트를 유지할 수 있다는 것입니다. 이제 우리는 계산량이 많은 연산을 메모리에서 수행 할 수 있으며 모든 것이 훨씬 빨라졌습니다.
규모가 필요하다는 것을 깨달을 때까지 잠시 동안 작업했기 때문에 더 많은 웹 서버가 필요합니다.
문제는 - 현재 디자인으로는 모두 똑같은 상태를 유지해야합니다. 그들은 모두 DB를 쿼리하고, 데이터를 처리하고, 메모리에서 유지 관리합니다. 그러나이 데이터를 변경해야 할 때 어떻게됩니까? 모든 서버는 어떻게 일관성을 유지합니까?
이 아키텍처는 나에게 결함이있는 것처럼 보입니다. 모든 데이터를 메모리에 저장하면 성능 이점을 얻을 수 있지만 이는 확장 성을 심각하게 저해합니다.
여기에서 선택할 수있는 옵션은 무엇입니까? 메모리 내 키 - 값 데이터 저장소로 전환 하시겠습니까? 우리는 웹 서버 내부의 상태를 완전히 포기해야합니까?
+1 진실의 곡물. – duffymo