javascript - Node에 동시 접속했을 때 추측한 결과와 결과가 다름
怪我咯
怪我咯 2017-06-22 11:54:23
0
1
758
  • 테스트 논리는 비교적 간단합니다. 즉, Node가 데이터를 쿼리하기 위해 데이터베이스에 액세스하는 데는 JMeter를 사용하여 멀티 스레드 테스트(5개 스레드)가 수행됩니다. 예상되는 결과는 (Node의 비차단 특성에 따라) 2초 안에 결과를 동시에 반환하는 스레드가 5개인데 결과는 이렇습니다.

  • 결과에 따르면 Node가 연속적으로 실행됩니다. 이는 예상한 결과와 일치하지 않습니다.

  • 코드:

으아악
  • 참고: 두 대의 다른 컴퓨터를 사용하여 동일한 SQL 문을 실행하고 시간이 2초이므로 데이터베이스 처리 문제는 아닙니다


다음은 보충설명입니다

  • @biancheng에 따르면 여러 SQL 문이 동일한 연결을 사용하기 때문입니다. 이제 코드가 수정되어 데이터베이스 연결 풀이 사용됩니다.

  • 코드는 다음과 같습니다.

으아악
  • 이 결과는 5개의 스레드가 동시에 쿼리되고 모든 반환 시간이 4초 이상입니다. 테스트 후 스레드 수가 변경되면 쿼리 시간이 자연스럽게 길어집니다. 2, 복귀 시간은 2초 이상입니다. 기대에 부응합니다!

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(1)
某草草

시간의 시작은 쿼리 전이고 끝은 쿼리가 완료되는 시간이므로 매번 쿼리가 실행되는 시간입니다.

노드는 비동기식이지만 동일한 연결을 사용하고 있습니다. 연결 자체를 대기열에 넣어야 하나요? 내가 아는 한, 동일한 연결의 대부분의 데이터베이스에서 실행되는 SQL은 대기열에 추가되어 차례로 실행됩니다. 여러 연결이 병렬일 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!