몇천명이 Room 에 동시접속할 수 있도록 설계하려면 어떤 것들이 필요할까요?
안녕하세요!
저는 웹소켓 개발은 해본적이 없는데 흥미로운 주제로 강의를 하셔서 강의를 듣고 있는데요,
예제에서는 간단하게 2명의 client 의 경우를 보여주셨는데 실제스트리밍 방송에는 몇천명씩 들어와서 채팅을 하는데 그럴 경우에는 SocketBufferSize 를 늘려주면 되는건가요?
그런식으로 확장해야할 때 어떻게 설계해야하는지 궁금합니다!
回答 2
1
사실 정답은 없는거 같습니다.
이러한 서버의 스트레스 관리를 위해서는 다양한 테스트를 진행하기 때문입니다.
그래서 제가 수치상으로 이릔 트래픽에는 이런 사이즈를 지정해달라고 말씀은 못드릴꺼 같아요.
실제로 저 또한 구현을 할 때는 wrk라는 툴을 사용하여 스트레스 테스트를 진행해보고 조율을 하는 편이거든요.
Wrk나 이외의 스트레스 도구를 아시면 좋습니다.
실제 실무에서 이러한 스트레스 테스트를 많이 진행을 하거든요.
그치만 그렇다고 큰 걱정은 안하셔도 됩니다.
생각보다 많은 트래픽을 서버 성능만 괜찮다면 다 잡아 처리가 가능하거든요 ㅎㅎ
그러니 메시지에 담길 청크의 크기정도만 고려하여 지정해주셔도 서비스를 하시는데에는 문제가 없다라는 말씀을 드리고 싶네요
하지만 테스트는 항상 필요합니다.
인프런에 이런 강의가 없어서 간단하게 준비를 해 보았는데 좋게봐주셔서 감사합니다.
개발이나 개발 외적인 부분에 대한 질문도 가능하니 편하게 질문주세요!!
들어주셔서 감사함다!!
1
추가로 답변을 드리자면 저는 하나의 방에 대한 버퍼 사이즈를 지정해 주었습니다.
이러면 방마다 버퍼 사이즈가 다르게 설정이 가능하다는 거죠
또한 소켓 통신 특성상 오버헤드가 그렇게 크지 않아요.
일반 HTTP보다 지속적 통신에 대해서 더 효과적이기때문에 서버 성능만 잘 받쳐준다면 큰 요청도 무리없이 처리 가능합니다.
useEffect와 lifecycle문의
0
7
1
프론트엔드 학습 수준 문의
0
25
2
리액트 챕터별 코드에서 eslint 설정파일이 없어요
0
41
2
gRPC 실무에서 질문
0
31
2
fetchBoardsOfMine, fetchBoardsCountOfMine 에러 문의드립니다
0
35
1
데이터 로딩중 화면만 계속 나와요!!
0
51
2
Streaming 중인 서비스에서 모든 파드에 broadcast하는 방법
0
118
3
프론트쪽이 리액트로 되어있는데요..
0
123
2
오늘 강의 듣기 시작했는데요!
0
132
2
RunInit() 관련 질문
0
180
5
소켓 연결과 http
0
154
2
학습자료는 어디서 받나요?
1
200
1
현재 강의에서 재생관련 문제가 있어서 전달드립니다.
1
202
2
강의에 음성만 나오고 영상이 나오질 않습니다 ㅠ
0
142
1
데이터 불러오기
1
143
1
panic 사용
1
116
1
defer 사용
1
129
1
nodejs 파일이 프론트엔디 파일인가요??
0
220
1
채팅 메시지 DB로 저장 하기.
1
841
2
채팅이 2번씩 전송되는 현상 질문
1
314
1
뭔가 중간에 오타를 쳤는지 오류가 자꾸 발생하는데 혹시 go 소스코드 볼수있는곳 있나요?
1
247
1
다른 질문을 읽고 궁금한 점이 생겼습니다.
1
303
1
소켓 서버의 수평적 확장 및 무중단 배포에 대해 질문드립니다!
3
1304
2
app.js를 여러 번 실행했음에도 불구하고, 로그가 단 한 번만 출력됨
1
335
2

