소잡는 칼 - Kafka를 이용한 비동기 메시지 시스템 구현 및 활용 지두현(라이엇게임즈 코리아 / RiotGames, Korea 라이엇에서 사용하는 로그인 시스템은 로그인 과정에서 IP탐지, 로깅, Amumu, Auth 와 같은 여러 모듈을 탄다. 이를 Kafka라는 메시지 큐 시스템을 버스로 이용하여 비동기적으로 플레이어의 로그인 로직을 처리하는 시스템을 구현하였다. 규모에 비해 실제로 사용하는 노드의 수는 많고, 리소스에 비해 나오는 성능이 작아 제목이 소잡는 칼이 된 것 같다.그렇지만 이렇게 자동화하여 매끄러운 개발 경험은 다음 상황에서 큰 장점이 될 수 있을 것 같다.개별 엔드포인트별로 작업을 분리할 수 있어 유연성이 높아진다.개발 과정에서 개발자가 자신의 엔드포인트와 그 사이에 있는 버스만 알고 있으면 된다.마이크로서비스에 비해 중앙에 버스가 있어서 여러 작업들을 비동기적으로 처리하기 수월하다.
로그인 로직을 관리하는 중앙에서 처리할 필요 없이 버스가 알아서 한다.즉 모놀리식 방식과 마이크로 방식의 장점을 적절히 섞고 이를 자동화 위에 태워 개발 효율을 극대화 한 방법으로 생각된다. Posted by nhne at 4월 24, 2018 19:27