Node.js 또는 서블릿? [닫은]


10

Javascript 서버 측 언어, 즉 Node.js에 대해 많이 들었고 Node를 선호하는 많은 비교를 보았습니다.

무엇이 더 빠르거나 빠른지, 또는 Java 서블릿과 같은 성숙한 것과 어떻게 관련되는지 이해하지 못합니다.

그러나 서블릿은 Node.js가 아닌 멀티 스레드 프로그래밍 언어 위에 구축됩니다. 그렇다면 node.js가 어떻게 더 빠를 수 있습니까?

1000K 사용자가 데이터베이스 레코드를 쿼리한다고 가정하면 Node.js가 서블릿보다 느리지 않아야합니다.

또한 서블릿이 Node.js에 비해 더 나은 보안을 제공하지 않습니까?


프로세스와 스레드는 모두 멀티 코어 활용을 위해 모든 응용 프로그램을 확장하는 데 사용할 수 있습니다. 둘 다 필요하지 않습니다.
Raynos

@Raynos 바인딩 된 C 기능도 스레드 할 수 없습니까? 방금 비 블로킹 자동 큐 메신저로 JS의 역할을 맡아서 하위 수준의 물건에 물건을 넘겨 주었지만 여전히 노드에서 내 발을 얻지 못했습니다.
Erik Reppen

답변:


12

당신은 사과와 오렌지를 섞고 있습니다.

서블릿 (또는 HttpServlet에서 상속)을 사용하면 HTTP 요청 매개 변수에 액세스하고 기존 HTTP 서버 구현을 통해 (또는 그 위에) 무언가로 응답 할 수 있습니다.

Javascript를 언어로 사용하지만 Node.js는 그보다 낮은 수준입니다. 실제로 HTTP 서버를 구현 하는 것부터 시작 합니다. 그럼에도 불구하고 웹 응용 프로그램과 같이 더 높은 수준의 작업을 계속할 수 있습니다.

멀티 스레딩에 대해서는 필요하지 않습니다. Node.js 서버는 멀티 스레딩으로 인해 빠르지 않고 IO 요청을 차단하지 않기 때문에 더 빠르므로 다른 작업을 수행하면서 대기열에서 계속 펌핑 할 수 있습니다. 그들은 할 일이있을 때만 작동합니다-기다리지 않습니다-결과적으로 심각한 성능 향상이 발생합니다.

데이터베이스 쿼리의 경우 클라이언트보다 데이터베이스 모델 및 API의 제약 조건에 더 가깝습니다.

보안에 관해서는-실제로는 다른 주제이며 궁극적으로는 라이브러리가 아닌 개발자의 손에 달려 있습니다.


3
서블릿 3은 Node와 같은 비동기 IO를 지원합니다.
jiggy

3
jiggy- 무언가 를 지원하는 것과 처음부터 무언가를 위해 설계되는 것에 는 큰 차이가 있습니다. 노드 비동기는 후자입니다.
Jack

1
@ Yam Marcovic 나는 여전히 "IO 요청을 차단하지 않습니다" 라는 의미를 이해 하지 못합니다 . JEE에서도 스레드가 독립적으로 실행되어 다른 요청이 중단되지 않습니다. 요청마다 새로운 스레드가 생성됩니다. 말이 되나요?
Oliver
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.