웹 서버 클러스터
3434 단어 web
개요
집단과 분포식은 모두 집중식에서 진화한 것이다.분포식과 집단은 서로 협력할 뿐만 아니라 동시에 집단과 분포식도 협력할 것이다.여기서 집단을 중점적으로 이야기하다
집단은 무엇입니까?
집단은 단위 시간 내에 처리하는 작업의 수량을 높일 수 있고, 서버의 성능을 향상시킬 수 있다. 여러 대의 서버가 작업을 처리하지만, 모든 작업은 한 대의 서버가 독립적으로 완성한다.
분포식이 뭐예요?
분포식은 단일 작업 처리 시간을 단축시킬 수 있다. 집단과 마찬가지로 여러 대의 서버가 작업을 처리하지만, 모든 작업은 여러 대의 서버가 합작하여 완성하고, 각 서버는 큰 작업 중의 작은 임무를 완성한다.
집중식이 뭐예요?
집중식은 가장 전통적인 것이다. 모든 임무는 한 대의 기계로 완성된다
클러스터 장면
하나의 물리 서버에 여러 개의 응용 서버를 집합할 수 있으며, 각 응용 서버는 독립적으로 작업할 수 있다.다시 전단에 중앙 제어 서버를 분배하여 이 물리 서버로 보내는 요청을 일정한 권한에 따라 각 응용 서버에 다시 분배한다.
예제
tomcat을 예로 들면 1*apache+N*tomcat의 모드apache를 전면으로 하고 전방에서 부하 균형으로 요청을 각tomcat 서버에 보낼 수 있다
이점
일반적으로 단일 64비트 서버를 대체하기 위해 32비트 서버를 그룹화하여 하드웨어의 성능을 최대한 발휘할 수 있습니다. 1.64비트 프로그램에서 포인터 팽창과 메모리 정렬로 인해 메모리 낭비가 발생할 수 있습니다.2. 단일 64비트 서버가 다운될 때 발생하는 스냅샷은 매우 커서 분석하기 어렵다.대용량 메모리 서버는 더 큰 메모리 영역에 대해 쓰레기 수집을 해야 한다는 것을 의미하며, 그러면 GC의 시간이 증가하고 서버의 정지가 길어진다
난점
http 요청이 무상태이기 때문에 세션 단계의 업무에 대해 사용자의 상태를 어떻게 유지합니까?단일 서버에서session-sessionID의 메커니즘을 제공하여 사용자의 상태를 저장합니다. 그러면 현재 여러 대의 서버가 있는데 사용자의 상태를 어떻게 기록합니까?두 가지 큰 방향이 있다.세션 점성 2.공유 세션
session 점성
이런 방식도 친화식 집단이 되어session에 점성을 만들어 준다. 이것은 사용자가 매번 방문하는 같은 응용 서버를 전방 서버apache에 기록해야 한다는 뜻이다. 사용자가 처음으로 방문한 것은 어떤tomcat이고 사용자가 뒤에서 보낸 요청을 이tomcat에 보내면 각 서버의 부하가 불균형적이다. 사용자가 처음 방문했을 때만부하 균형 분배를 채택하였지만, 이 영향도 그렇게 뚜렷하지 않을 것이다
worker.controller.sticky_session=true|false
worker.controller.sticky_session_force=true|false
이것은 아파치가 세션의 점성에 대한 설정worker입니다.controller.sticky_session,true를 위해session 점성 메커니즘을 열고false를위한worker를 닫습니다.controller.sticky_session_force,true는 이 서버가 다운되었음에도 불구하고 이 서버로 보내는 것을 의미하며,false를 위해false는 다른 서버로 보내는 것을 선택하고 전자는true, 후자는false를 선택하는 것을 권장합니다.이렇게 하면 세션의 점성에 도달할 수 있을 뿐만 아니라, 서버가 다운될 때 계속 서비스를 제공할 수 있다
장점: 1.세션ID와 전송할 서버만 기록되어 있기 때문에 메모리를 적게 차지합니다.
단점: 1.만약 서버가 다운된다면, 이 서버에 있는session 정보를 모두 잃어버릴 것이다
세션 동기화
이런 방식은 세션의 모든 정보를 한 곳에 저장하고 모든 서버 노드가 이 세션에 접근할 수 있도록 해야 한다. 이런 방식은 대략 세 가지 방안이 있다. 1.쿠키 동기화 2.데이터베이스 동기화 3.메모리 데이터베이스 동기화
쿠키 동기화
쿠키 동기화는 세션의 모든 정보를 클라이언트에 저장하고 요청할 때마다session도 보내는 장점이 있습니다. 1.서버 메모리를 사용하지 않음 2.서버 다운으로 세션 정보가 손실되지 않음
단점: 1.클라이언트에 두면 안전하지 않습니다. 2.브라우저의 제한으로 브라우저가 쿠키를 사용하지 않습니다.유량 증가, 변상 응답 시간 낮추기 4.session 서열화와 반서열은 추가 시간이 필요합니다
데이터베이스 동기화
세션 정보를 접근할 수 있는 데이터베이스에 저장하는 장점: 1.서버 다운으로 세션 정보가 손실되지 않음
단점: 1.차지하는 메모리 크기2.데이터베이스 부담 증가 3.session 서열화와 반서열은 추가 시간이 필요합니다. 4.데이터베이스에 액세스하는 데 추가 시간 필요
메모리 데이터베이스 동기화
세션 정보를 접근할 수 있는 메모리 데이터베이스에 저장합니다. 예를 들어redis,memcached의 장점: 1.서버가 다운되면 세션 정보가 손실되지 않습니다. 2.빠른 액세스 속도
단점: 1.메모리 사용량 2.session 서열화와 반서열은 추가 시간이 필요합니다
총결산
세션 동기화가 가장 좋은 것은 세 번째입니다. 메모리 데이터베이스 동기화 세션 동기화의 장점은 단일 서버의 다운을 두려워하지 않는 것입니다. 그러나 그가 차지하는 자원, 속도도 세션보다 점성이 큽니다.
결점
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Portswigger의 연구실 작성: CSRF 토큰 보호를 사용한 기본 클릭재킹이 견습생 수준 실습에서는 일부 CSRF 토큰 보호가 있음에도 불구하고 클릭재킹에 취약한 웹사이트에서 계정 삭제 흐름을 악용합니다. 주어진 자격 증명으로 로그인하면 계정 페이지로 이동한 후 사용자 계정을 삭제하는 데...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.