대머리개발자

이벤트 서버의 성능 테스트 시작(5) 본문

개발이야기/오픈소스 설치

이벤트 서버의 성능 테스트 시작(5)

대머리개발자 2023. 11. 26. 17:46
728x90

마지막 여정을 향해 달려가고 있다.

 

보이지 않던 끝자락이 희미하게 보이기 시작한다. 

 

내가 몇 번째 순서인지에 대한 체크를 setinterval을 통해 체크 할 수 있지만 서버에 부담이 될 수 있기때문에 좀 더 나은 방법이 있는지 확인

 

양방향 통신으로는 gRpc가 가장 먼저 생각이 났지만.. 브라우저에서 http2.0을 지원하지 않으니 Pass

소켓 통신을 적용하는 것이 바람직한 모양세지만  Streaming 방식으로 채택하기로 했다.

 

여러가지 이유가 있겠지만

1. 소켓 통신을 적용하고 테스트하고 하는데 시간적 여유가 없다.

2. 반대로 이미 서버는 webFlux 형태로 되어 있어서 Streaming 쉽게 적용 가능하다.

3. N:N 통신의 형태가 아니라 거의 1:N 통신이기에 맞는 조건인 것 같다.

 

아르메리아 프레임워크에서 기본적인 requestTimeout은 10초인듯 하다. 10초 하다가 끊긴다. ㅎㅎ 30초 설정으로 변경

    serverBuilder.requestTimeout(Duration.ofSeconds(30))

 

서버에서 무한정으로 response 주기도 부담스러우니 적절하게 셋팅을 한다.

 

** 서버 사이드

아르메리아 프레임워크에서는 @ProducesEventStream 설정만 하면 끝이다.

별도로 delay를 1초를 주고 랭킹(대기열)값을 리턴한다.

    @ProducesEventStream
    @Get("/{eventId}/rank")
    fun streamRank(ctx: ServiceRequestContext): Flux<Int> {
        val stream = Stream.iterate(0) { i: Int -> i + 1 }
        val userId =     RequestContext.getUserId()
        return Flux
                .fromStream(stream)
                .delayElements(Duration.ofMillis(1000))
                .flatMap{
                    participantService.rankJoin(ctx.pathParam("eventId")!!.toLong(), userId)
                }
    }

 

** 프론트 사이드

1초당 한번씩 호출하는 것을 30초에 한번씩 호출하면.. 조금 나겠쥬!

728x90

'개발이야기 > 오픈소스 설치' 카테고리의 다른 글

NKS - Pinpoint - 다시  (1) 2024.01.09
NKS - Pinpoint  (0) 2024.01.09
nGinder 스크립트 개발환경 구축  (2) 2023.11.20
이벤트 서버의 성능 테스트를 위한 nGinder 설치  (0) 2023.11.18
k8s - 그라파나  (0) 2023.11.10