채팅이 가끔 실시간으로 업데이트되지 않음

가끔 Discourse 채트가 실시간으로 업데이트되지 않습니다. 이 문제를 재현하는 데 많은 시도가 필요했기 때문에, 수정이 어렵다는 점을 이해합니다. 하지만 특히 5~10명이 동시에 채팅을 할 때 채트가 동기화되지 않는 경우가 있습니다. 여전히 정상적으로 입력하고 전송할 수 있지만, 화면은 얼어붙은 상태이며 다른 사람들이 보낸 메시지를 다시 열어서 일종의 새로고침을 하지 않는 한 볼 수 없습니다.

저희 포럼의 활성 사용자 대부분이 이 문제를 겪고 있으며, 이를 줄일 수 있는 방법이 있는지 궁금합니다. 다만 매우 무작위적으로 발생하기 때문에 수정이 어렵다는 점은 이해합니다. 저는 4GB RAM을 가진 AMD Droplet에서 Discourse를 사용 중이며, 이 문제는 유일한 문제입니다. 그 외 모든 것(토픽 비동기 업데이트 포함)은 완전히 정상적으로 작동합니다.

그런 일이 발생하면 브라우저의 DevTools를 확인해 보세요. 아마도 429 오류로 실패한 몇 가지 요청이 표시될 것입니다. 이 내용이 사실이라면 여기에 댓글로 알려 주세요.

여기에 스크린샷을 올려 주세요.

죄송합니다, 이게 도움이 될까요?

사이트가 Cloudflare 뒤에 있으므로 다음 사항을 확인해야 합니다:

  • app.yml 파일에 Cloudflare 템플릿을 추가했나요? Discourse가 올바른 사용자 IP를 수신하고 있나요?

  • MessageBus를 Cloudflare 프록시를 통해 서빙하고 있는데, 마지막으로 확인했을 때 이는 좋은 방법이 아니었습니다. Full site CDN acceleration for Discourse - #26 by Hyan 를 참조하세요.

  • 서버가 리소스 부족으로 인해 부하 때문에 429 오류를 보내고 있는 건가요? 문제가 해결되는지 확인하기 위해 추가 플러그인을 제거해 볼 수 있습니다. 그렇지 않다면 UNICORN_WORKERS 수를 조금 늘려보는 것도 방법입니다.

네, 추가했으며 관리자 대시보드에서 올바른 IP를 확인하고 있습니다.

차이가 크게 난다면 Cloudflare를 제거할 수 있지만, MessageBus가 무엇이며 어떤 문제를 일으키는지 이해하는 데 어려움을 겪고 있습니다. 해당 주제를 더 자세히 연구해 보겠습니다.

CPU는 항상 20% 미만이고, 디스크는 60%를 거의 넘지 않습니다. 유니콘(unicorn) 수를 늘려서 시도해 보겠습니다.