Skip to content

Refactor: Redis를 활용하여 미디어 서버 역할 분리하기 #242

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
platinouss opened this issue Dec 10, 2023 · 0 comments · Fixed by #246
Closed

Refactor: Redis를 활용하여 미디어 서버 역할 분리하기 #242

platinouss opened this issue Dec 10, 2023 · 0 comments · Fixed by #246
Assignees
Labels
BE 백엔드 작업 🛠️ Refactor 리팩토링 작업
Milestone

Comments

@platinouss
Copy link
Member

platinouss commented Dec 10, 2023

기존 문제점 설명

현재 미디어 서버는 강의실 정보와 클라이언트(발표자, 참여자) 정보를 모두 메모리에 저장하고 있습니다.

하지만 미디어 서버에서 많은 데이터를 관리하다 보니 부하도 심해지고, 혹여나 서버가 런타임 에러로 재가동된다면 기존에 진행 중인 강의실과 클라이언트를 관리할 수 없게 됩니다.

따라서 미디어 서버는 음성을 중계하고 메시지를 전달하는 수단으로만 사용하고, Redis에 관련 데이터를 저장하고 적합한 데이터를 가져올 수 있도록 구성하려고 합니다.

현재 구현된 기능으로는 참여자 입장 시 최신 화이트보드 정보 전달하는 정도의 기능만 제공하고 있는데,
추후에 발표자 재접속 시 해결되지 않은 질문과 최신 화이트보드 정보를 전달하는 기능을 추가하려고 합니다.

To-Do

  • Redis에 클라이언트 정보(클라이언트 타입, 강의실 ID) 저장하기
  • Redis에 강의실 정보 저장하기
  • Redis에서 해당 강의실의 강의 시작 시간 가져오기
  • 화이트보드 내용이 변경될 때마다 화이트보드 데이터 갱신하기
  • 참여자 입장 시 Redis에서 최신 화이트보드 데이터 가져온 후 전달하기
  • 강의 종료 시 Redis에서 강의실 정보 제거

미디어서버 아키텍처

추가 내용

@platinouss platinouss added 🛠️ Refactor 리팩토링 작업 BE 백엔드 작업 labels Dec 10, 2023
@platinouss platinouss added this to the 5주차 milestone Dec 10, 2023
@platinouss platinouss self-assigned this Dec 10, 2023
@platinouss platinouss changed the title Refactor: Redis와 Redis Streams를 활용하여 미디어 서버 역할 분리 Refactor: Redis를 활용하여 미디어 서버 역할 분리 Dec 10, 2023
@platinouss platinouss changed the title Refactor: Redis를 활용하여 미디어 서버 역할 분리 Refactor: Redis와 Redis Streams를 활용하여 미디어 서버 역할 분리하기 Dec 10, 2023
platinouss referenced this issue in platinouss/Boarlog Dec 10, 2023
현재 미디어서버 메모리에 RTCPeerConnection, Socket, 클라이언트 타입, 강의실 ID를 관리하고 있었는데 재접속하더라도 불변 데이터인 클라이언트 타입과 강의실 ID는 Redis에 저장하도록 구성했습니다.
platinouss referenced this issue in platinouss/Boarlog Dec 10, 2023
…. #242

현재 미디어서버 메모리에 강의 시작 시간, 현재 화이트보드 정보, 발표자 정보, 참여자 정보 등을 관리하고 있었는데 재접속하더라도 불변 데이터인 발표자 Email, 강의 시작 시간, 최신 화이트보드 내용은 Redis에 저장하도록 구성했습니다.
@platinouss platinouss changed the title Refactor: Redis와 Redis Streams를 활용하여 미디어 서버 역할 분리하기 Refactor: Redis를 활용하여 미디어 서버 역할 분리하기 Dec 10, 2023
tmddus2 added a commit that referenced this issue Dec 10, 2023
…a-server-roles

Refactor(#242): 미디어 서버 역할 분리하기
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE 백엔드 작업 🛠️ Refactor 리팩토링 작업
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant