복붙노트

[REDIS] AWS에서 채팅을 확장하기위한 아이디어?

REDIS

AWS에서 채팅을 확장하기위한 아이디어?

나는 AWS의 채팅 서비스를 확장하기위한 최상의 솔루션을 마련하기 위해 노력하고있어. 나는 몇 가지 잠재적 인 솔루션을 마련했습니다 :

AWS를 사용하여 확장 할 수있는 채팅 자신의 어떤 다른 방법이 있습니까? SQS는 실행 가능한 접근인가? 얼마나 큐에 메시지를 추가 할 AWS 걸립니까?

해결법

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

    1.채팅 서비스를 구축하는 것은 쉽게 당신이 생각하는 것처럼되지 않습니다.

    채팅 서비스를 구축하는 것은 쉽게 당신이 생각하는 것처럼되지 않습니다.

    나는 전체 XMPP 서버, 클라이언트를 구축하고, SDK의 및 발생하는 미묘하고 어려운 문제의 일부에 입증 할 수했습니다. 사용자가 서로 채팅을 볼 프로토 타입은 간단합니다. 계정 생성, 보안, 발견, 존재, 오프라인 전달 및 친구 목록과 전체 기능 시스템은 훨씬 더 도전이다. 다음 규모에 서버의 임의의 수는 특히 어려운 것입니다 가로 질러.

    PubSub 채팅 서비스에서 제공하는 기능입니다 오히려 채팅 서비스를 구축하는 기존의 방법보다 (XEP-60 참조). 나는 매력을 볼 수 있지만 PubSub는 단점이 있습니다.

    당신을 위해 몇 가지 질문 : 1. 당신은 웹을 통해이 일을하고 있는가? 사용자가 연결하고 웹 소켓 솔루션이 긴 폴링 또는 어떻게 할 건가요?

    난 당신처럼 뭔가를 가고 싶어합니다 의심 :

    XMPP RFC의 읽기 채팅 서버를 구축의 복잡성의 아이디어를 얻으려면 : RFC 3920 RFC 3921

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

    2.SQS / SNS는 수다스러운 요구에 맞게 수 없습니다. 우리는 채팅 응용 프로그램에 적합하지 않을 수 있습니다 SQS에 약간의 대기 시간을 관찰했다. 또한 SQS는 FIFO를 보장하지 않습니다. 내가 AWS에 레디 스 함께 일했다. 그것은 마음에 모두에게 모범 사례를 복용 구성된 경우 그것은 아주 간단하고 안정적이다.

    SQS / SNS는 수다스러운 요구에 맞게 수 없습니다. 우리는 채팅 응용 프로그램에 적합하지 않을 수 있습니다 SQS에 약간의 대기 시간을 관찰했다. 또한 SQS는 FIFO를 보장하지 않습니다. 내가 AWS에 레디 스 함께 일했다. 그것은 마음에 모두에게 모범 사례를 복용 구성된 경우 그것은 아주 간단하고 안정적이다.

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

    3.각 서버의 일종을 실행 - 당신이 설명하는대로 나는 주제에 가입 전체 채팅 시스템을위한 하나 개의 주제를 수행하고 각 서버를 가지고, SNS를 이용한 채팅 서버를 구축에 대해 생각하는 대신 사용자 당 하나 개의 주제를하는 것 롱 폴링 또는 웹 소켓 채팅 시스템. 이벤트가 발생하면 다음에, 데이터는 SNS 통지 페이로드에서 전송된다. 서버는 다음의 손길이 닿지 않은 어떤 관련이없는 클라이언트를 떠나, 응답을 받아야 대기열에서 어떤 클라이언트 확인하려면이 페이로드를 사용할 수 있습니다. 사실 이것에 대한 작은 프로토 타입을 구축하지만 많은 수의 사용자를위한 강력한 충분 있는지 확인하기 위해 테스트의 톤을 수행하지 않았습니다.

    각 서버의 일종을 실행 - 당신이 설명하는대로 나는 주제에 가입 전체 채팅 시스템을위한 하나 개의 주제를 수행하고 각 서버를 가지고, SNS를 이용한 채팅 서버를 구축에 대해 생각하는 대신 사용자 당 하나 개의 주제를하는 것 롱 폴링 또는 웹 소켓 채팅 시스템. 이벤트가 발생하면 다음에, 데이터는 SNS 통지 페이로드에서 전송된다. 서버는 다음의 손길이 닿지 않은 어떤 관련이없는 클라이언트를 떠나, 응답을 받아야 대기열에서 어떤 클라이언트 확인하려면이 페이로드를 사용할 수 있습니다. 사실 이것에 대한 작은 프로토 타입을 구축하지만 많은 수의 사용자를위한 강력한 충분 있는지 확인하기 위해 테스트의 톤을 수행하지 않았습니다.

  4. ==============================

    4.HI 실시간 채팅 SNS와 잘 작동하지 않습니다. 그것은 이메일 / SMS 또는 서비스 1 허용 대기 시간이 몇 초 동안 설계되었습니다. 실시간 채팅, 하나 또는 몇 초에서 허용되지 않습니다.

    HI 실시간 채팅 SNS와 잘 작동하지 않습니다. 그것은 이메일 / SMS 또는 서비스 1 허용 대기 시간이 몇 초 동안 설계되었습니다. 실시간 채팅, 하나 또는 몇 초에서 허용되지 않습니다.

    이 링크를 확인

    Latency (i.e. “Realtime”) for PubNub vs SNS
    

    종종 많은 초 느린 아마존 SNS에는 대기 시간 보장을 제공하지 않으며, 대기 시간의 대부분은 1 초 이상 측정합니다. 다시, 이것은 다소 무관하다; 아마존 SNS는 많은 초의 대기 시간이 자주 허용하고 예상되는 서버 - 투 - 서버 (또는 이메일 / SMS) 알림을 위해 설계되었습니다.

    PubNub은 기존의 확립 된 개방형 네트워크 소켓을 통해 데이터를 제공하기 때문에 대기 시간이 가입 된 장치의 백분위 95 %에서 구독하는 게시에서 0.25 초 미만이다. 0.7 초 - 대부분의 인간은 이벤트가 0.6에서 인식하는 경우 "실시간"으로 무엇인가를 인식.

  5. ==============================

    5.(일부 프레임 워크를 사용하지 않은 경우) 내가 그런 일을 구현하는 것이 방법은 다음과 같다 :

    (일부 프레임 워크를 사용하지 않은 경우) 내가 그런 일을 구현하는 것이 방법은 다음과 같다 :

    사용자의 메시지를 수락 (EC2)에 웹 서버가 있습니다. 이 웹 서버에 자동 확장 기능 그룹을 사용합니다. 웹 서버는 쉽게 확장 할 수있는 아마존 RDS에있는 모든 DB를 업데이트 할 수 있습니다.

    당신이 당신의 자신의 DB를 사용하는 경우, 당신은 (모든 요청에 ​​동일한 큐를 전송하여)이 SQS를 사용하여 웹 서버에서 DB를 분리하기 위해 고려해 볼 수 있습니다, 그리고 u는 큐를 소비하는 소비자가있을 수 있습니다. 이 소비자는 때문에 큐의 MSG를 X보다 크면, 그것은 스케일 것 (u는 알람으로 설정할 수 있음) autoscalling 기 뒤에 배치 될 수있다

    SQS 일반적으로 꽤 빨리 즉를 1 초 미만이거나 업데이트합니다. (순간부터 유는 큐에에 나타나는 순간, 그것을 전송되지), 거의 더보다.

  6. ==============================

    6.새로운 AWS의 IoT 서비스 전에 지원 WebSocket을, 연결 유지 및 출판 / 하위 몇 달에 시작하기 때문에, 당신은 쉽게에 탄성 채팅을 구축 할 수 있습니다. AWS의 IoT는 제로 관리와 핸들 몬스터로드 (메시지 억)을 구축했다 자바 스크립트를 포함한 다양한 언어에 대한 SDK를 많이 가진 관리 서비스입니다.

    새로운 AWS의 IoT 서비스 전에 지원 WebSocket을, 연결 유지 및 출판 / 하위 몇 달에 시작하기 때문에, 당신은 쉽게에 탄성 채팅을 구축 할 수 있습니다. AWS의 IoT는 제로 관리와 핸들 몬스터로드 (메시지 억)을 구축했다 자바 스크립트를 포함한 다양한 언어에 대한 SDK를 많이 가진 관리 서비스입니다.

    현재 업데이트에 대한 자세한 내용을보실 수 있습니다 :

    https://aws.amazon.com/ru/about-aws/whats-new/2016/01/aws-iot-now-supports-websockets-custom-keepalive-intervals-and-enhanced-console/

    편집하다:

    마지막 SQS 업데이트 (11분의 2,016가) : 당신은 지금 엄격한 순서로 처리 할 메시지를 필요로하는 애플리케이션을 위해 아마존 심플 큐 서비스 (SQS)를 사용 할 수 있습니다 정확히, 선입 선출 (FIFO) 큐를 사용하여 한 번. FIFO 큐가 메시지를 전송하고 수신되는 순서가 엄격하게 보존되어 있고 각각의 메시지는 정확히 한번 처리 될 수 있도록 설계된다.

    출처: https://aws.amazon.com/about-aws/whats-new/2016/11/amazon-sqs-introduces-fifo-queues-with-exactly-once-processing-and-lower-prices-for-standard- 큐 /

    지금에 구현 SQS + SNS 너무 좋은 아이디어처럼 보인다.

  7. from https://stackoverflow.com/questions/16450223/ideas-for-scaling-chat-in-aws by cc-by-sa and MIT license