자바 프로젝트의 전기 공급, 스파이크, 치고 높은 동시성 시나리오의 특정 장면과 개념과 아이디어의 일부를 처리

여기에 내가보기의 다른 온라인 거물급에 그리기 :

하나 :
높은 동시 제기 도전
  이유 : 스파이크 러시가 종종 빨리 돌아 사용자에게 결과를 초당 수천 높은 동시성 시나리오의 수만을 가져올 것이다.
  서비스 요청 응답 시간이 100ms에 소요되는 가정 처리량 인덱스 QPS (초당 처리 요청), 우리는 10 개 웹 서버, 연결 (500)의 최대 수에 각이있다.
  계산 이상화 :
  10 * 500 / 0.1 = 50000
  우리가 정말 핸들 50,000 동시가 있습니까?
  그렇지 않으면. 높은 동시성 시나리오, 웹 서버는 연결 프로세스, 더 많은 CPU 컨텍스트 스위칭의 더 열립니다. CPU는 많은 사람들이 기대하는 것보다 소비하는 CPU 서비스 요청 응답 시간에 이르는 압력을 증가시킬 것이다. 어쩌면 당신은 단지 20,000 동시을 견딜 수있다.
  우리가 수행하는 방법에해야 할이 시간?

  A : 1, 인터페이스가 합리적인 요청을 설계 할 필요가 어떻게합니까?
    정적 및 동적 분리가 정적 HTML은 잉에 의해 배포 할 수 있습니다.
    빠른 메모리 액세스와 배경 고압 저장 동시성 MySQL의 부적절한 레디 스의 핵심 인터페이스 병목.
    2, 재시작 및 과부하 보호
    에는 연결을 처리하지하도록 서버를 일으키는 원인이 당신 Yingkang 20,000 30,000 동시 흐름, 사용할 수있는 경우, 시스템은 비정상적인 상태로 분류하고, 느린 응답 시간이됩니다. 오랜 시간 동안 시스템의 응답 시간은, 일부 사용자는 더 자주 클릭을 선호합니다. 악순환에 "사태"를 선도, 전체 시스템도 서비스가 도움이되지 않았다 다시 시작, 붕괴.
    어떻게 할까?
    시스템 전체 상태를 감지하면 과부하, 자기 보호의 요청을 거부합니다.
    (1) 여과 말단부에 의해 간단한 방식으로는
    (2) CGI 보급형 과부하 배치, 클라이언트로부터의 요구를 직접 리턴

2 :
높은 동시성에서의 데이터 보안
  여러 스레드가 동일한 파일에 기록 "스레드 안전"이 나타납니다. 높은 동시 데이터 보안은 진리입니다. 예를 들어, 슈퍼 지방이있을 수 있습니다.
  프로그램 :
  비관적 잠금 생각 : 데이터 잠금 상태, 외부 요청 거부 변경을 수정하는 경우.
  단점 :
  일부 고도의 동시 스레드는이 요청이 죽을 것이다 "잠금"잡아 않을 수 있습니다. 어느 정도 축적 된 연결의 수는, 시스템 예외 배출된다.
  FIFO 큐 아이디어 : 요청이 항상 잠금을 얻을 수없는 요청으로 이어질하지 않습니다, 줄 지어있다.
  단점 :
  메모리 큐 발생할 수 있습니다 높은 동시성, "폭발"당신이 좋은 메모리 큐를 설정 한 경우, 시스템이 요청의 지속적인 급속한 유입의 속도를 유지하지 요청을 처리합니다. 쌓여, 또는 느린 응답 발생합니다, 시스템은 예외를 붙 잡았다.
  낙관적 잠금 사고 :
  비관적 잠금과 비교해은 낙관적 잠금 요청을 수행 할 자격이 있지만, 성공한 것으로 간주하는 업데이트의 버전 번호와 일치하는 버전 번호를 받게됩니다.
  단점 :
  계산하는 컴퓨터의 CPU의 비용을 증가, 그러나 이것은 더 나은 솔루션입니다.
  캐시 서버 아이디어가 :
  레디 스에 키 - 값 저장소이기 때문에 레디 스 각 시스템의 평균에 캐시 할 수있는 데이터를 보장하기 위해 배포 할 수 있습니다 첫 번째 생각은, 데이터 조각에 접근하는 첫 번째 생각은 조각 해시입니다, 가능성은 해당 데이터베이스가 될 것이다 분산 매핑의 수를 모듈로 긴 값을 얻기 위해 키를 해싱을 위해, 당신은 위치를이 데이터베이스를 읽을 수 없습니다

세 :
물을 높은 동시성에서와 살인.
  이유 :때로는 정말 사용자에없는 대규모 스파이크 또는 구매 및 기타 요청은 일부 "도난"상품 일부 "브러시 투표"및 기타 유사한 도구를 사용하기위한 요청을 보냅니다. 이 방법은 서버에 더 많은 요청을 보내도록 돕고있다. 또한 고급 자동 요청 스크립트의 일부를 생산했다. 이러한 관행은 요청의 수를 그들의 비율, 성공률이 높은 것보다 더하고 있습니다.
        이러한 부정 행위에 속하지만, 우리는 또한 몇 가지 솔루션을 가지고 분명하다.
  A : 다음의 경우로 나누어
  1 과 동일한 계정 한번 전송 요청 복수.
  높은 동시성은 특정 논리적 판단을 건너 뛸 발생할 수 있습니다.
  프로그램 : 입구 프로그램, 한 번만 사용자 요청, 다른 필터. 레디 스 메모리 캐싱 서비스, 플래그 (하나의 요청 만이 성공 할 수 있습니다, 시계 낙관적 잠금의 결합 특성) 쓰기
  2, 여러 계정이 여러 요청을 전송 한 시간
  일찍 등록 기능을 많이가 특별한 작업의 결과로, 제한되지 않습니다 자동으로 등록 스크립트를 작성하여 방은 많은 수의 등록 "좀비 계정을." 크게 승리의 그들의 확률을 향상 브러시 행동뿐만 아니라 일부 전달 복권의 모든 종류의 전문.
  프로그램 : IP 기계 지정된 요청 주파수 검출은 IP에 대한 요청이 비정상적으로 높은 주파수의 경우. 그 요청의 팝업 또는 금지를 위해 코드.
  3, 여러 계정, 다른 IP는 다른 요청을 보내
  일부 기관은 IP의 독점적 인 그룹을 소유하고이 "스튜디오"사용을 제공하기 위해 지불 임의의 프록시 IP 서비스를했다. 사용자의 컴퓨터, 앞으로 IP 패킷을 밖으로 일부 직접 검은 색이있다 그래서 프록시 IP 수출에 일반 사용자의 컴퓨터.
  해결 방법 : 어려운 구별하고, 쉽게하는 "아군에 대한 오발." 당신은 사업의 높은 임계 값에 의해 사전에 정리, 또는으로 할 수 있습니다 "데이터 마이닝."

개인 마감 동시 솔루션을 제공합니다.

응용 프로그램 수준 A : 캐시, 대기열, 클러스터, 토큰, 시스템 해상도, 격리, 시스템 업그레이드 (확장 방향이 수평이 될 수 있음) 읽기 및 쓰기로 구분합니다.

. 공간 B에 대한 시간 : 단일 환원 요청 시간은, 상기 시스템은 단위 시간에 동시성을 향상시킬 수 있도록.

. 시간 C 공간 : 백엔드 시스템 용량 공간에 대한 대가로, 전체 처리 시간을 길게 비즈니스.

추천

출처www.cnblogs.com/eyesCentre/p/10948377.html