Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

새로운 언어및 플래폼 전환으로 극한 상황에서의 생존기를 히스토리화 한내용입니다. 


  • 사용된 플래폼:
  • AKKA-Actor(Scala and JAVA)
  • Atmosphere(Websocket)
  • PlayFrameWork(Micro webservice
  • JNI ( JAVA ↔ c++ ) : 기존 c++과 통신해야하는 부분은 JNI로 커버


설계

단일 병목지점 포인트( Aux-DB,DC)는 항상 존재를 하며 단일지점의 요청을 얼마나 줄이고

분산되는 시스템에 나눠서 일을 시킬수 있느냐가 설계포인트


REST 설계

기존 실시간 처리되는 저수준 패킷들을 모두 Rest화를 합니다.

...

웹소켓 설계

실시간처리에 있어서 Rest는 적합하지 않습니다않으며 고성능 처리에 한계가 있습니다.

Rest호출 횟수를 줄이기위해 웹소켓을 보조적으로 사용을 하였습니다.

보통 동접3만 초당 천번이상의 Request가 필요한 정보다라고 측정이되면 웹소켓으로의 전환이 필요합니다.

...

클라이트가 아무 액션을 하지 않는 서버의 상태의 스냅샷을 기입합니다. 클라이언트가 아무 액션을 하지 않는다고 서버가 놀고있지는 않습니다.

사용자가 없이 흘러간 시간별 스냅샵 비교는 중요한 테스트 부분입니다.

기본적으로 백그라운드에서 작동하는 서비스가 있기때문에 0 - 1 액션의 Diff는 변화량을 측정하기가 어렵거나 미비합니다.

최소 100Action이상 사용자가 늘어나는 상황에서 비교를 하는게 의미 있는 데이터이나, 1액션 자체에 성능 문제가 있을수도 있기때문에 사소한것이라도 검증을 하는게 권장됩니다.

테스트 스크립트도 완성이되고, 1Node 테스트가 어느정도수행이되면 클러스터로 여러대를 구성하여 추가 테스트를 수행하게됩니다.

1Node 테스트때 찾지 못한 여러가지 문제를 찾게됩니다. 스케일아웃을 했다고 성능이 늘어났을것으로 기대하지만 예상외로 1Node일때 문제없는 성능부분이 스케일 아웃이되면서 예측하지 못한 많은 성능 문제가 발생하게됩니다.

...