복붙노트

[REDIS] 실시간 응용 프로그램 초보자 - Node.js를 + 레디 스 또는 RabbitMQ -> 클라이언트 / 서버 방법?

REDIS

실시간 응용 프로그램 초보자 - Node.js를 + 레디 스 또는 RabbitMQ -> 클라이언트 / 서버 방법?

나는 실시간 응용 프로그램 개발에 초보자입니다 거기에서 수많은 옵션 주위에 내 머리를 정리하려합니다. 나는 사람들이 공유에 친절하게도이 있었다 사실을 많은 블로그 게시물, 노트와 에세이로 읽었습니다. 그러나, 간단한 문제는 내 작은 뇌의 답이 보인다. 나는뿐만 아니라 가입 SO 여기에 게시 할 수 있도록 다른 사람들의 숫자가, 같은 문제가있을 수 있습니다 생각했다. 여기 간다 :

나는 비동기 채팅 + 또 다른 재미있는 기능입니다 작은 실시간 응용 프로그램을 구축하고있다. 나는 다음과 같은 두 가지 옵션까지 내 선택을 삶은 :

나는 기초 학습이 밖으로 구축을 시작 할 수 있다고 생각합니다. 하지만, 내 (심각 n00b) 질문이 있습니다 :

나는이 미친 질문하지 않고 바로 골조되지 바랍니다. 일부 건설적인 피드백을 싶어요,이 커뮤니티를 사랑 해요!

감사합니다.

해결법

  1. ==============================

    1.구조적으로, 당신의 선택의 모두 검색 할 다른 응용 프로그램에 대한 오라클 데이터베이스 서버에 데이터를 저장과 동일합니다.

    구조적으로, 당신의 선택의 모두 검색 할 다른 응용 프로그램에 대한 오라클 데이터베이스 서버에 데이터를 저장과 동일합니다.

    RabbitMQ와 레디 스 솔루션은 모두 중간 서버 즉 처리하는 데이터 통신에 연결하면 앱이 필요합니다. 이 네트워크 API와 영구적 인 데이터베이스로 간단하게 사용할 수 있기 때문에 레디 스 오라클과 같은 대부분이다. 그러나 RabbitMQ는 MQ 브로커 데이터를 지속 정말 책임을지지 않습니다 때문에 조금 다르다입니다. 당신이 그것을 잘 구성하고 메시지를 게시 할 때 올바른 옵션을 사용하는 경우, RabbitMQ 실제로 당신을위한 데이터를 유지하지만 당신은 정상적인 메시지 큐잉 프로세스의 일부를 제외하고 밖으로 데이터를 얻을 수 없습니다. 즉, RabbitMQ는 지속성 네트워크 문제 또는 시스템 충돌에서 복구하는 방법으로 메시지만을 제공하는 통신을위한 것입니다.

    나는 당신이 이미 잘 알고있는 RabbitMQ와 어떤 프로그래밍 언어를 사용하는 것이 좋습니다 것입니다. LAMP에서 M은 일반적으로 MySQL의 해석되기 때문에, 당신도 전혀 MySQL을 사용하거나 데이터 만이 아닌 실시간 통신을위한 장기 저장을 위해 사용하지 않을 것이라고이 의미합니다.

    RabbitMQ 사이트는 AMQP와 애플리케이션 구축에 대한 문서의 엄청난 금액을했다. 난 당신이 RabbitMQ를 설치 한 후, 당신은 rabbitmqctl에 대한 문서를 읽어 다음에 실험에 가상 호스트를 만들 수 있습니다.이 모든 것을 재설정하지 않고 실험을 청소하기 쉬운 그 방법을하는 것이 좋습니다. 나는 또한 당신이 routing_key에 와일드 카드를 사용하여 직접 팬 아웃 교류의 동작을 에뮬레이트 할 수 있기 때문에 단지 주제 교류를 사용하는 것이 좋습니다. 당신은 단지 교류에 메시지를 게시하고 만 큐에서 메시지를 수신 기억하십시오. 교환은 큐가 메시지의 복사본을 수신해야하는 결정하기 위해 큐의 binding_key에 메시지의 routing_key 패턴 일치 할 책임이있다. 그것은 당신 만 routing_key와 같은 이름을 가진 하나의 큐에 메시지를 전송하려는 경우에도 전체 AMQP 모델을 학습 가치가있다.

    브라우저에서 클라이언트를 구축하고, 당신이 프로토 타입을 구축하려는 경우, 당신은 XHR 오늘 사용하여 단지 고려해야하고 AMQP합니다 (AMQ 프로토콜)의 순수 자바 스크립트 구현은 Kamaloka-JS 같은 이동하는 RabbitMQ 메시지 브로커와 통신하는 데 사용되는 표준 프로토콜입니다. 즉, 당신이 오늘 무엇을 알고 그것을 구축 한 다음 나중에 도구 상자에서 장기 미래가있는 무언가 (AMQP을)를 속도.

  2. ==============================

    2.이것은 일반적으로 RAD (신속한 응용 프로그램 설계 / 개발)라고 그리고 내가 지금 추천 할 것입니다 무엇이다. 이렇게하면 일이 원하는 것을 얻을 나중에의 오프 작동하는 데 사용할 수있는이 개념의 증거를 구축 할 수 있습니다.

    이것은 일반적으로 RAD (신속한 응용 프로그램 설계 / 개발)라고 그리고 내가 지금 추천 할 것입니다 무엇이다. 이렇게하면 일이 원하는 것을 얻을 나중에의 오프 작동하는 데 사용할 수있는이 개념의 증거를 구축 할 수 있습니다.

    반대로 서버, 그리고 그에서 고객에게 이야기하는 방법에 관해서는, 당신은 WebSocket을에 전혀 읽어?

    당신이 제안하는지, 나는이 nodejs 있도록, 이벤트 기반 프로그래밍으로가는 당신을 말할 것이다, 램프 또는 이벤트 기반 프로그래밍 사이의 선택을 감안할 때. 그러나 그것은 단지 한 사람의 의견입니다.

  3. ==============================

    3.잘,

    잘,

    LAMP - 아파치는 모든 요청에 ​​대해 새로운 프로세스를 만들 수 있습니다. RabbitMQ는 많은 기능을 유용 할 수 있습니다. Node.js를 - 이벤트의 도움을 반복 비동기 모든 요청을 처리하는 단일 프로세스를 사용합니다. 그래서 아파치와 같은 별도의 오버 헤드 프로세스 생성. 비동기 채팅 응용 프로그램의 경우, socket.io + Node.js를 + 것이 최선의 스택입니다 술집-SUP 레디 스. 난 이미 스택 위에 사용하여 실시간 알림을 구현했습니다.

  4. from https://stackoverflow.com/questions/6169658/real-time-application-newbie-node-js-redis-or-rabbitmq-client-server-how by cc-by-sa and MIT license