Page History
...
Warning |
---|
이 아티클은 대용량 웹 서비스개발을 위한 표준적인 해결방법을 잘 정리한 문서는 아니며 특수한 게임서비스의 플랫폼 변화과정에서 개인이 진행한 대용량 웹서비스를 위한 아케텍쳐 설계를 포함한 구현과정과 로드테스트에 대응한 경험에 대한 기술입니다. 일반적인 웹서비스는 아니며, 국내 단일 서비스에 비해 글로벌 웹서비스는 더 많은 문제를 해결해야하며 대규모 처리를위해 고려해야 했던 특징은 다음과 같습니다.
|
...
기존 실시간 처리되는 저수준 패킷들을 모두 Rest화를 합니다. 기존 비동기 처리를 응답을 기다려야하는 Rest와 성능을 유지하면서
설계를 해야할지가 고민이며 웹프레임워크의 튜닝요소를 깊게 살펴보는것에서부터 시작합니다.
이러한 API는 DB설계에 맞추어 이루어지는것이 아닙니다. 우리가 원하는 스펙을 API를 통해 구체적으로 명시화하고
DB는 단지 그 과정에서 저장해야할것을 저장하는 Persitence의 역활만 하면되었기때문입니다.
또한 데이터를 먼저 정의한후 어플리케이션을 설계하려고하면, 구조적인 불일치뿐만아니라
게임웹서비스는 아무것도 못하고 망할 가능성이 높으며 실제로 그러했습니다.
한가지 특징을 살펴보면, 비 연결 웹 세션을 어떻게 최소한으로 유지 할까란 고민으로 KeepAlive를 설계하고 실제 DB호출에 발생하는
비용을 90%이상줄였으며 API설계시 고려 했었다란 점입니다.
URL : https://www.playframework.com/documentation/2.1.0/ThreadPools
...