RUDP와 HTTP 질문


페이스북, 카카오톡 오픈소스 공개내역 보면 HTTP오픈소스 '볼리'를 씁니다. 메머드기업은 Reliable UDP 방식으로 통신하는 거 아니었나요?

loopj도 쓰인 사례를 확인했는데 그 유명한 retrofit을 쓰는데가 없는 거 같습니다. 라이선스 문제가 혹시 있나요?

그리고 HTTP 통신으로 버틸 수 있는 동시접속자수 한계는 어느정도로 보시는지요.

감사합니다.

  • 2016년 06월 01일에 수정됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.
  • 2016년 03월 31일에 작성됨
    개발을 공부하는 학생 ANDROID / IOS / JSP / VB.NET / AWS

조회수 296


2 답변


좋아요
4
싫어요
채택취소하기

동시접속이라는 것이 커넥션을 유지하고 있는 일종의 Websocket류의 동시접속을 말하는 것인지, 아니면 동시에 요청되는 Request의 수인지에 대해서 문제를 약간 명확하게 분리해야 할 것 같습니다.

문백상으로 봐서는 후자로 보이네요.

전자에 관해서는 C10K라고 동시 접속에 관한 오래된 문제가 있습니다. (요즘은 이 범위가 커져서 C10M이라고 합니다) 이런 류의 문제는 보통 이벤트 기반 서버(netty, node.js)등을 사용하면 어느정도 극복이 가능합니다.

질문주신 내용인 후자에 관해서는 허대영님 답변에서 처럼 검색 범위가 어느정도냐에 따라 천차만별 입니다.

단순하게 key-value lookup이나, 캐시된 정적 페이지의 경우는 초당 10만 요청도 어려운 일이 아니지만, 여러 back-end서비스를 긁어서 어떤 비지니스 로직을 수행하거나, Join이 많은 DB쿼리가 들어가게 되면 TPS가 급격히 떨어지게 됩니다.

실제 서비스에 들어가시면 HTTP프로토콜이 주는 한계 보다는 DB에서 발생하는 병목현상이 서비스 확장을 어렵게 합니다.

  • 2016년 03월 31일에 작성됨
    프로그래밍 언어를 좋아하는 프로그래머


윈도우 환경을 기준, 서버의 성능이 아주 좋다면

  1. TCP 동시 연결은 100만개도 가능하다고 하는 군요. (http://www.serverframework.com/asynchronousevents/2010/12/one-million-tcp-connections.html)
  2. 이론적으로는 16,777,214개의 연결이 가능하다고 합니다. (http://www.serverframework.com/asynchronousevents/2010/10/how-to-support-10000-concurrent-tcp-connections.html) - 실질적으로는 서버 성능이나 서비스(응용)프로그램의 메모리나 구현 로직에 따라 천차만별입니다.
  3. 어찌돼었든 6만개 보다 많은 연결을 하려면 IP가 여러개 있어야 합니다. (TCP/UDP 에 사용하는 포트는 65535까지 때문. )
  • 2016년 03월 31일에 작성됨
    리눅스(유닉스) 기반의 시스템에서 웹 서비스를 개발하고 있습니다.

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close