이벤트브로커 메세지브로커, 무엇이 다를까

topics 706 시스템 설계
index 이론
references

단어에 대한 의미 파악

what is broker

이벤트와 메세지 브로커를 이해하기전에 브로커가 멀까? 왜 생겨났을까

브로커는 한국말로 중개인이다. 즉 통신 사이에 하나의 중개자를 둬서 처리한다는 것이다.
이렇게 처리하면 각 시스템의 결합도를 낮추고 비동기적으로 실행가능하다

이미지 출처 : 얄팍한 코딩사전
이벤트브로커 메세지브로커-1758572666903.png

이벤트 vs 메세지

이벤트와 메세지의 차이를 그림으로 표현해 보았다.
이벤트브로커 메세지브로커, 무엇이 다를까-1758593841643.png

의도

  • 메세지
    • 어떠한 특정 데이터를 요청하거나 다른시스템에 지시
  • 이벤트
    • 어떤 일이 일어났다고 상태를 알림

수신자 여부

  • 메세지
    • 발신자는 소비자에 대해 알고 있음
    • 메세지 하나당 소비하는 사람이 정해져잇음
  • 이벤트
    • 이벤트는 특정 상태에 대한 신호
    • 소비자가 특정되지않음
    • 특정 채널을 구독하면 그 이벤트를보고 다른 주체가 특정일을 하는..

메세지브로커, 이벤트 브로커

위의 단어의 정의를 통해 이벤트브로커와 메세지브로커들을 정의 할 수 있다.
대표적인 메세지,이벤트 브로커인 RabbitMQ와 kafka를 기반으로 각 브로커의 차이를 설명한다.

RabbitMQ(메세지 브로커)

이벤트브로커 메세지브로커, 무엇이 다를까-1758596642812.png - 큐로 구현됨 - 큐에서 하나씩 빼서 소비자가 소비하게 됨 - 설정에 따라 유지 시킬순있음 - 주로 메모리에 저장됨, 유실의 위험성도 있음 - 설정에 따라 큐 - 에러처리, 메세지 삭제등 메세지에 대한 처리가 주로 브로커에서 함 ### Kafka(이벤트 브로커) 이벤트브로커 메세지브로커, 무엇이 다를까-1758597235016.png - 디스크에 로그형태로 저장 - 파티션단위로[kafka가 멀까](/pages/../400-%EC%9D%B8%ED%94%84%EB%9D%BC-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98/kafka%EA%B0%80-%EB%A9%80%EA%B9%8C.html) - 각 메세지는 오프셋을 가짐 - 각 메세지는 소비되어도 지워지지 않음 - 소비자들은 채널별로 - 브로커의 부담이 줄어 대용량 처리에 용이함 그런데 찾다보면 같은 서비스에대해서 이벤트브로커라고도고하고 메세지브로커 라고도한다. aka 공식문서에서 단서를 찾을 수 있었다. >  '메시지 기반'이라는 용어는 시스템의 빌딩 블록을 의미하고 '이벤트 기반'이라는 용어는 시스템의 상위 수준 속성을 의미합니다. 그래서 메시지 기반 도구를 사용하여 이벤트 기반 시스템을 구축할 수 있습니다.