인프런 커뮤니티 질문&답변

heedoitdox님의 프로필 이미지

작성한 질문수

대용량 채팅 TPS 처리를 위한 웹소켓 통신 만들며 학습하기

들어주셔서 감사합니다. 편하게 질문주세요.

몇천명이 Room 에 동시접속할 수 있도록 설계하려면 어떤 것들이 필요할까요?

해결된 질문

24.04.02 00:29 작성

·

343

1

안녕하세요!

저는 웹소켓 개발은 해본적이 없는데 흥미로운 주제로 강의를 하셔서 강의를 듣고 있는데요,

예제에서는 간단하게 2명의 client 의 경우를 보여주셨는데 실제스트리밍 방송에는 몇천명씩 들어와서 채팅을 하는데 그럴 경우에는 SocketBufferSize 를 늘려주면 되는건가요?

그런식으로 확장해야할 때 어떻게 설계해야하는지 궁금합니다!

답변 2

1

heedoitdox님의 프로필 이미지
heedoitdox
질문자

2024. 04. 06. 20:25

wrk 라는 것은 처음 들어봤네요!
답변 너무 감사합니다!

1

July님의 프로필 이미지
July
지식공유자

2024. 04. 02. 09:19

사실 정답은 없는거 같습니다.

 

이러한 서버의 스트레스 관리를 위해서는 다양한 테스트를 진행하기 때문입니다.

 

그래서 제가 수치상으로 이릔 트래픽에는 이런 사이즈를 지정해달라고 말씀은 못드릴꺼 같아요.

 

실제로 저 또한 구현을 할 때는 wrk라는 툴을 사용하여 스트레스 테스트를 진행해보고 조율을 하는 편이거든요.

  • Wrk나 이외의 스트레스 도구를 아시면 좋습니다.

  • 실제 실무에서 이러한 스트레스 테스트를 많이 진행을 하거든요.

 

그치만 그렇다고 큰 걱정은 안하셔도 됩니다.

생각보다 많은 트래픽을 서버 성능만 괜찮다면 다 잡아 처리가 가능하거든요 ㅎㅎ

 

그러니 메시지에 담길 청크의 크기정도만 고려하여 지정해주셔도 서비스를 하시는데에는 문제가 없다라는 말씀을 드리고 싶네요

  • 하지만 테스트는 항상 필요합니다.

 

인프런에 이런 강의가 없어서 간단하게 준비를 해 보았는데 좋게봐주셔서 감사합니다.

개발이나 개발 외적인 부분에 대한 질문도 가능하니 편하게 질문주세요!!

들어주셔서 감사함다!!

 

July님의 프로필 이미지
July
지식공유자

2024. 04. 02. 09:21

추가로 답변을 드리자면 저는 하나의 방에 대한 버퍼 사이즈를 지정해 주었습니다.

 

이러면 방마다 버퍼 사이즈가 다르게 설정이 가능하다는 거죠

또한 소켓 통신 특성상 오버헤드가 그렇게 크지 않아요.

일반 HTTP보다 지속적 통신에 대해서 더 효과적이기때문에 서버 성능만 잘 받쳐준다면 큰 요청도 무리없이 처리 가능합니다.