안녕하세요
,
최근 코드베이스를 살펴보고 /message-bus/{client-id}/poll 엔드포인트의 client id가 무엇인지 파악하려고 했습니다. 이 client ID가 정확히 무엇을 나타내는지, 그리고 어떻게 설정되는지 설명하는 관련 코드나 문서를 알려주실 수 있으신가요?
도움 주시면 감사하겠습니다!
안녕하세요
,
최근 코드베이스를 살펴보고 /message-bus/{client-id}/poll 엔드포인트의 client id가 무엇인지 파악하려고 했습니다. 이 client ID가 정확히 무엇을 나타내는지, 그리고 어떻게 설정되는지 설명하는 관련 코드나 문서를 알려주실 수 있으신가요?
도움 주시면 감사하겠습니다!
제가 틀렸을 수도 있지만, clientId는 MessageBus가 X 메시지를 누구에게 전달해야 하는지를 식별하는 데 사용되는 것으로 보입니다.
일정 시간 간격마다 클라이언트가 서버에게 *“안녕, 제 ID는 XYZ인데 제게 전달할 메시지가 있나요?”*라고 묻는 대화라고 상상해 보세요.
클라이언트 ID는 스크립트가 로드될 때마다 자동으로 생성되는 것 같습니다(Discourse의 경우 이 생성된 clientId가 클라이언트에 어떻게 유지되는지는 정확히 알지 못합니다)
message-bus를 사용하거나 이해하려는 건가요?
전자의 경우라면, 무엇을 관찰하려고 하는지와 현재 작동하지 않는 부분을 설명해 주세요. 저는 https://github.com/discourse/all-the-plugins에서 MessageBus를 grep으로 검색해 봅니다.
좀 더 배경을 설명하자면, 저희의 Discourse 호스팅 환경에서 메시지 버스 폴링 호출이 매우 많이 발생하고 있습니다. 클라이언트 ID와 현재 사용자 사이에 어떤 상관관계가 있는지 확인해 보고 싶었습니다. 만약 그러한 연결이 존재한다면, 이를 통해 패턴을 파악하고 트래픽을 관리하기 위한 효과적인 레이트 리미팅 규칙을 정의하는 데 도움이 될 수 있습니다.
대부분은 이해가 안 되지만, 브라우저 개발자 도구를 열어 보면 모든 열린 창이 메시지 버스를 정기적으로 폴링하고 있는 것을 확인할 수 있습니다. 페이지를 새로 고치지 않고도 게시물이 수정된 것을 보거나 메시지 수가 업데이트되는 등의 기능이 바로 이렇게 작동합니다. 요청이 많이 발생하는 것은 당연한 일입니다. 무작위 숫자로 폴링하는 것 같아서, 그 사용자가 누구인지 (적어도 저는) 쉽게 파악할 수 없습니다.
네 - 메시지 버스 폴링 호출 횟수가 높다는 것은 많은 동시 접속 사용자를 의미하며, 각 고유한 클라이언트 ID는 브라우저 세션을 나타냅니다.
아니요 - 이는 포럼이 기능하기 위해 필요한 필수 트래픽입니다. 이러한 트래픽이 많이 발생한다면 그것은 또한 성공의 신호이기도 합니다! ![]()