Pub/Sub 시스템이란 무엇입니까?
회사 및 해당 솔루션으로 태그가 지정된 시스템 설계 인터뷰 질문을 보려면 systemdesign.us 를 방문하십시오 . YouTube , LinkedIn , Twitter , Medium 에서 팔로우 하세요 .
Pub/Sub 시스템은 사용자가 특정 주제를 구독하고 구독한 주제의 메시지만 수신할 수 있는 메시징 시스템입니다. 이는 소셜 네트워킹, 뉴스 피드 및 게임과 같은 다양한 애플리케이션에 유용할 수 있습니다.
펍/서브는 어떻게 작동합니까?
게시자(또는 메시지 발신자)는 특정 주제로 메시지를 보냅니다. 그런 다음 해당 주제의 모든 구독자(또는 메시지 수신자)가 메시지를 수신합니다. 구독자는 언제든지 주제 구독을 취소할 수 있습니다.
게시/구독 구성요소

게시/구독 시스템에는 세 가지 주요 구성 요소가 있습니다.
주제 : 메시지는 주제로 구성되며 사용자는 특정 주제를 구독하여 메시지를 받을 수 있습니다.
게시자 : 게시자는 메시지 발신자이며 특정 주제에 메시지를 보냅니다.
subscriber : 구독자는 메시지 수신자이며 구독한 주제에서 모든 메시지를 수신합니다.
Pub/Sub를 사용하는 이유는 무엇입니까?
Pub/Sub는 다양한 소스의 실시간 업데이트가 필요한 애플리케이션에 유용할 수 있습니다. 예를 들어, 소셜 네트워킹 앱은 뉴스 기사 및 기타 콘텐츠뿐만 아니라 친구의 업데이트를 사용자에게 표시해야 할 수 있습니다. pub/sub를 사용하면 앱에서 새 데이터를 지속적으로 폴링하지 않고도 이러한 모든 메시지를 실시간으로 수신할 수 있습니다.
Pub/Sub의 이점은 무엇입니까?
pub/sub를 사용하면 다음과 같은 몇 가지 이점이 있습니다.
- 실시간 업데이트: 구독자는 정기적인 폴링 간격을 기다릴 필요 없이 메시지가 게시되는 즉시 메시지를 받을 수 있습니다.
- 유연한 구독: 구독자는 관심 있는 주제만 구독하도록 선택할 수 있으며 언제든지 구독을 취소할 수 있습니다.
- 확장성: 게시/구독 시스템은 많은 주제와 구독자를 처리하도록 쉽게 확장할 수 있습니다.
- 게시자와 구독자 간의 실시간 통신이 가능합니다.
- 많은 수의 주제와 구독자를 처리할 수 있는 확장 가능한 시스템입니다.
- 가입자가 메시지를 수신할 주제를 선택할 수 있으므로 유연합니다.
pub/sub를 사용하면 몇 가지 잠재적인 단점이 있습니다.
- 메시지 전달이 보장되지 않음: 메시지가 비동기적으로 전송되기 때문에 모든 구독자가 메시지를 수신한다는 보장이 없습니다. 즉, 구독자가 오프라인 상태이거나 어떤 이유로 메시지가 지연되는 경우 일부 메시지가 누락될 수 있습니다.
- 긴 대기 시간: 비동기식 메시지 전달은 동기식 메시지 전달(예: 기존 메시징 시스템 사용)보다 대기 시간이 더 길 수 있습니다.
- 제한된 메시지 기록: 대부분의 게시/구독 시스템은 각 주제에 대한 가장 최근 메시지만 추적하므로 구독자는 구독한 후에만 새 메시지를 받게 됩니다. 이는 전체 메시지 기록이 필요한 애플리케이션에 문제가 될 수 있습니다.
- 게시자는 올바른 구독자에게 메시지를 보내려면 메시지의 주제를 알아야 합니다.
- 구독자가 너무 많은 주제를 구독하면 관심이 없는 메시지를 받을 수 있습니다.
- 메시지가 순서대로 전달되거나 전혀 전달되지 않는다는 보장은 없습니다.
Pub/Sub 기술 목록
- 아파치 카프카
- Amazon 단순 알림 서비스(SNS)
- Google 클라우드 게시/구독
- 마이크로소프트 애저 이벤트 그리드
- IBM 클라우드 게시/구독
- NATS 스트리밍 서버
- CloudEvents
- MQTT
- 스톰프
- 웹후크
- 아파치 ActiveMQ 아르테미스
- 토끼MQ