많은 학생들이 Nodejs에 대해 들었고 서버에서 JavaScript를 실행할 수 있다는 것을 알고 있지만 사용 시나리오에 대해서는 명확하지 않을 수 있습니다. 최근에 그들은 또한 nodejs를 배우고 있었기 때문에 요약했습니다.
nodejs의 장점 :
많은 서버 측 언어 (PHP, Java, ASP.NET)가 있습니다. 문제는 무엇입니까? 현재 서버 측 언어는 사용자가 서버에 액세스 할 때 각 사용자 링크에 대한 스레드를 생성하지만 각 스레드는 약 2m 메모리를 소비합니다. 메모리가 8g이있는 서버가 약 4,000 명의 사용자를 연결할 수있는 경우 사용자 수에 링크가 많으면 서버 수를 늘려야합니다. 또한, 사용자가 서버 공유 문제와 관련된 앱, 웹 페이지와 같은 동시에 링크하는 방법에는 여러 가지가 있으므로 서버가 최대 사용자 수를 동시에 지원하는 방법이 문제가됩니다.
Nodejs는이 문제를 해결하기 위해 클라이언트 간 서버 링크 방법을 수정했습니다. 각 클라이언트에 대한 새 스레드를 생성하지는 않지만 각 클라이언트 링크에 대해 내부적으로 처리 된 이벤트를 시작합니다. 따라서 Nodejs는 동시에 최대 수만 명의 사용자의 클라이언트 링크를 처리 할 수 있습니다.
Nodejs는 개발 응용 프로그램에 적합합니다.
애플리케이션이 많은 동시 입력/출력을 처리해야하고 클라이언트에 응답을 보내기 전에 응용 프로그램 내에서 매우 복잡한 처리가 필요하지 않은 경우 응용 프로그램 개발에 NodeJS 사용을 고려해야합니다.
1. 채팅 서버 : 채팅하는 사람이 많으면 사용자와 서버 간의 동시 링크가 크지 만 서버의 데이터 처리는 복잡하지 않습니다.
2. 포괄적 인 서비스 웹 사이트 및 전자 상거래 웹 사이트의 서버 : 이러한 유형의 웹 사이트의 서버 측면에서 초당 최대 수천 개의 데이터를 수신 할 수 있으며 이러한 데이터를 데이터베이스에 작성해야합니다. Nodejs는 큐 메커니즘을 통해 이러한 데이터를 캐시에 빠르게 작성한 다음 캐시 영역에서 데이터를 가져 와서 각 별도의 처리를 통해 데이터베이스에 작성할 수 있습니다. 다른 서버 (예 : Apache Server 또는 Tomcat Server) 인 경우이 서버는 I/O 메커니즘 차단을 사용하기 때문에 한동안 데이터베이스에 데이터베이스에 기록되어야합니다 (그리고 이전 데이터가 다음에 작성되기 전에 완료 될 때까지 기다려야합니다). 그러나 Nodejs는 비 블록 I/O 메커니즘을 사용할 수 없으므로 각 데이터를 기다리지 않고도 데이터베이스를 구현할 수 있습니다.
요약 :
약간 더 큰 시스템은 개발 언어로 처리 할 수 없습니다. 서버 측 개발 용 C 및 C ++와 같은 여러 유형과 혼합되어 있으며 비즈니스 로직을위한 Java, 프론트 엔드 디스플레이 용 PHP 및 메시지 미들웨어 등이 필요합니다.
Nodejs는 서버 측에서 빠르게 프로토 타입을 할 수 있으며 (C-System과 Java에 의해서만 수행 할 수 있고 성능은 여전히 매우 높음) 코드의 양은 비교적 작습니다. 다른 요점은 구문 장점, JS 클로저 등입니다. 그러나 CPU 집약적 인 처리에는 적합하지 않으며 돌아 서서만 해결할 수 있습니다. 이번에는 누군가 가이 연구 결과를 QCON에서 공유 할 것이라고 말하면서주의를 기울일 수 있습니다.
각 언어에는 적합한 필드가 있습니다. 모든 것을 해결하기 위해 언어를 강요 할 필요가 없습니다. 다른 언어의 특성이 있습니다. 끊임없이 트레이드 오프에 의해서만 목표입니다.
이들은 모두 시리즈에서 볼 수있는 요약입니다.