2014-07-24 2 views
0

node.js의 비동기 I/O와 혼동 스럽습니다.비동기 I/O, I/O에는 네트워크 요청도 포함됩니까?

I/O는 읽기/쓰기 하드 디스크 조작만을 참조합니까?

제 3 자 서비스에 대한 HTTP 요청은 I/O로 간주되어 비동기 I/O 모델의 이점을 얻을 수 있습니까? 이 노드에서

캐스팅 http://nodecasts.net/episodes/1-introduction-to-nodejs

Node.js를 빠르게 작성하고 확장 가능한 네트워크 애플리케이션을위한 소프트웨어 플랫폼입니다. 이벤트 기반이며 비 차단 I/O를 사용합니다. 논 블로킹 I/O를 사용하기 때문에 단일 프로세스로 많은 요청을 처리 할 수 ​​있습니다.

비 차단 I/O를 사용하기 때문에 단일 프로세스로 많은 요청을 처리 할 수 ​​있습니다. 내 응용 프로그램에서 HTTP 요청을 사용하여 MQ 서버에 내용을 쓰는 것과 동시성이 높을 것이라고 생각합니다.이 모델에서 Node.js를 사용하여 이점을 얻을 수 있는지 확실하지 않습니다.

감사

+0

예, 네트워크 통신은 일종의 I/O입니다. – Sneftel

답변

1

그것은 기본적으로 모든 I/O의 종류입니다 : 파일, 네트워크, 자식 프로세스 (및 입력/출력 스트림) 등

그래서 네트워크 I/O는 UDP 같은 것들을 포함 할 것 송수신 및 TCP 연결 및 HTTP 요청, SSH 연결, SIP 연결 등과 같이 그 위에 계층화 된 모든 프로토콜.

메시지 큐 서버의 경우 노드는 서버에 쿼리 할 수 ​​있지만 백그라운드에서 대기 할 수 있습니다 프로그램의 나머지 부분을 차단하지 않고 응답합니다. 이는 많은 메시지 대기열 요청을 병렬로 수행하거나 메시지 대기열 서버의 응답을 기다리는 동안 계속 요청을 처리 할 수있는 HTTP 서버를 가질 수있는 경우에 특히 유용합니다.

+0

요청을 받아서 MQ 서버에 뭔가를 집어 넣는 (추가 작업을 위해)이 접근법을 사용하는 경우 사용자가 MQ 서버 호출이 성공적인지 확인할 수없는 경우가 있습니다. 아니면 즉시? (아마도 네트워크 오류로 인한 실패) –

+0

각 HTTP 요청에 대해 MQ 요청을 보내는 HTTP 서버가있는 경우 응답이 들어 오거나 오류 (연결 수준 또는 MQ 수준 중 하나)가 발생하면 클라이언트에 응답 할 수 있습니다)가 발생합니다. 많은 노드 모듈은 오류시 '오류'이벤트를 방출하므로 이러한 종류의 이벤트를 수신하여 요청에 쉽게 응답 할 수 있습니다. – mscdex

0

비동기 란 절대 사람을 기다리지 않습니다. 따라서 서버에서 또는 아무리 응답을 기다리지 않고도 모든 사람에게이 작업을 구현하십시오.

당신은 네트워킹에 이것을 구현할 수 있고 NodeJs는 네트워킹과 같은 종류의 것들에 아주 잘 맞습니다.

관련 문제