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