개발 일지/Apache Kafka

메시지 브로커(Message Broker)

계란💕 2023. 3. 7. 17:51
  • 메시지 브로커(Message Broker): 송신자의 메시지 프로토콜 형식으로부터의 메시지를 수신자의 메시지 프로토콜 형식으로 변환하는 중간 컴퓨터 프로그램 모듈이다. 
  • 메시지 브로커들은 응용 소프트웨어가 이전에 정의해둔 메시지를 교환할 수 있는 전기 통신의 요소 또는 컴퓨터 네트워크이다. 
  • 송신자(Publisher)로부터 받은 메시지를 수신자(subscriber)로 전달해주는 중간 역할을 한다. 
  • 응용 소프트웨어 간에 메시지를 교환할 수 있도록 한다. 
    • 메시지가 적재되는 공간을 Message Queue 라고 한다. 
    • 메시지 그룹을  topic이라고 한다. 
  • Ex) Apache Kafka, Rabbit MQ,  Redis 

 

 

메시지 브로커와 이벤트 브로커의 차이점

  • 매시지 브로커는 이벤트 브로커 역할 가능하지만 이벤트 브로커는 메시지 브로커 역할을 할 수 없다.
  •  메시지 브로커는 대규모 메시지 기반 미들웨어 아키텍처로 사용되어 왔다.
    • 미들웨어(middleware): 서비스하는 애플리케이션들을 보다 효율적으로 아키텍처들을 연결하는 요소들로 작동하는 소프트웨어를 뜻한다. ex) 메시징 플랫폼(), 인증 플랫폼, 데이터베이스 분산 데이터베이스(Redis, MongoDB, Cassandra)가 미들웨어에 해당한다.        
      • cf) Redis는 key-value 형태의 NoSQL로 잘 알려져으나 메시지 큐 또는 메시지 브로커로 활용할 수도 있다. 
    • 미들웨어도 소프트웨어의 일종이다. 
    • 프로듀서 
    • 컨슈머
  • 공통점: pub, sub 기반의 메시지 큐 서비스를 제공한다. 
    • 메시지 브로커: 메시지를 받아서 적절히 처리하고 나면 즉시 또는 짧은 시간 내에 바로 삭제된다.
      • publisher가 생산한 메시지를 메시지 큐에 저장하고 저장된 데이터를 consumer가 가져가도록 중간 다리 역할을 한다.  
      • 데이터를 보내고 처리하고 삭제한다. 
      • ex) Rabbit MQ, Redis Queue
    • 이벤트 브로커: 메시지 브로커와는 조금 다르다. 
      • publisher가 생산한 이벤트를 저장해서 consumer가 특정 시점부터 이벤트를 다시 consume 할 수 있는 장점이 있다. 
      • 레코드를 딱 하나만 보관하고 인덱스를 통해 개별 액세스를 관리한다. 
      • 업무 상 필요한 시간동안 이벤트를 보존할 수 있다. 
      • 메시지 브로커와는 다르게 삭제하지는 않는다. 
      • 메시지 브로커보다 더 많은 양의 데이터를 처리 가능하다. 
      • 서비스에서 나오는 이벤트를 마치 데이터베이스에 저장하듯이 이벤트 브로커의 큐에 저장한다. 이렇게  저장하면서 얻는 이점은 ?
        • 딱 한번 일어나는 브로커에 저장함으로써 단일 진실 공급원(Simple Source Of Truth, SSOT, 데이터를 하나의 공간에 저장하면 회사 내의 누구나 데이터에 접근 가능)이 될 수 있다. 
        • 장애가 나면 오류난 순간 지점부터 재처리가능하다.  - 차이점
        • 많은 양의 스트림 데이터를 효과적으로 처리 가능하다
      • ex) Apache Kafca, AWS 키네시스, ...

'개발 일지 > Apache Kafka' 카테고리의 다른 글

Apache Kafka와 구성 요소  (2) 2023.03.12
미들웨어(Middleware)  (0) 2023.03.09