반응형
Jake Seo
제이크서 위키 블로그
Jake Seo
전체 방문자
오늘
어제
  • 분류 전체보기 (715)
    • 일상, 일기 (0)
    • 백준 문제풀이 (1)
    • 릿코드 문제풀이 (2)
    • 알고리즘 이론 (10)
      • 기본 이론 (2)
      • 배열과 문자열 (8)
    • 데이터베이스 (15)
      • Planet Scale (1)
      • MSSQL (9)
      • 디비 기본 개념 (1)
      • SQLite 직접 만들어보기 (4)
    • 보안 (7)
    • 설계 (1)
    • 네트워크 (17)
      • HTTP (9)
      • OSI Layers (5)
    • 회고 (31)
      • 연간 회고 (2)
      • 주간 회고 (29)
    • 인프라 (52)
      • 도커 (12)
      • AWS (9)
      • 용어 (21)
      • 웹 성능 (1)
      • 대규모 서비스를 지탱하는 기술 (9)
    • 깃 (7)
    • 빌드 도구 (7)
      • 메이븐 (6)
      • 그레이들 (0)
    • Java (135)
      • 이펙티브 자바 (73)
      • 자바 API (4)
      • 자바 잡지식 (30)
      • 자바 디자인 패턴 (21)
      • 톰캣 (Tomcat) (7)
    • 프레임워크 (64)
      • next.js (14)
      • 스프링 프레임워크 (28)
      • 토비의 스프링 (6)
      • 스프링 부트 (3)
      • JPA (Java Persistence API) (5)
      • Nest.js (8)
    • 프론트엔드 (48)
      • 다크모드 (1)
      • 노드 패키지 관리 매니저 (3)
      • CSS (19)
      • Web API (11)
      • tailwind-css (1)
      • React (5)
      • React 새 공식문서 요약 (1)
      • HTML (Markup Language) (5)
    • 자바스크립트 (108)
      • 모던 자바스크립트 (31)
      • 개념 (31)
      • 정규표현식 (5)
      • 코드 스니펫 (1)
      • 라이브러리 (6)
      • 인터뷰 (24)
      • 웹개발자를 위한 자바스크립트의 모든 것 (6)
      • 팁 (2)
    • Typescript (49)
    • 리눅스와 유닉스 (10)
    • Computer Science (1)
      • Compiler (1)
    • IDE (3)
      • VSCODE (1)
      • IntelliJ (2)
    • 세미나 & 컨퍼런스 (1)
    • 용어 (개발용어) (16)
      • 함수형 프로그래밍 용어들 (1)
    • ORM (2)
      • Prisma (2)
    • NODEJS (2)
    • cypress (1)
    • 리액트 네이티브 (React Native) (31)
    • 러스트 (Rust) (15)
    • 코틀린 (Kotlin) (4)
      • 자바에서 코틀린으로 (4)
    • 정규표현식 (3)
    • 구글 애널리틱스 (GA) (1)
    • SEO (2)
    • UML (2)
    • 맛탐험 (2)
    • 리팩토링 (1)
    • 서평 (2)
    • 소프트웨어 공학 (18)
      • 테스팅 (16)
      • 개발 프로세스 (1)
    • 교육학 (1)
    • 삶의 지혜, 통찰 (1)
    • Chat GPT (2)
    • 쉘스크립트 (1)
    • 컴파일 (2)
    • Dart (12)
    • 코드팩토리의 플러터 프로그래밍 (4)
    • 플러터 (17)
    • 안드로이드 스튜디오 (1)
    • 윈도우즈 (1)
    • 잡다한 백엔드 지식 (1)
    • 디자인 패턴 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 메이븐 골
  • 추상 팩터리 패턴
  • 자료구조
  • 참조 해제
  • MSSQL
  • pnpm
  • 외래키 제약조건
  • try-with-resources
  • bean Validation
  • 싱글톤 패턴
  • item7
  • Next.js
  • 이펙티브자바
  • 슬로우 쿼리
  • rust
  • Pre-rendering
  • 메이븐 라이프사이클
  • 플라이웨이트패턴
  • 서버리스 컴퓨팅
  • 팩터리 메서드 패턴
  • 자바 검증
  • 이펙티브 자바
  • 싱글톤
  • prerendering
  • 도커공식문서
  • 느린 쿼리
  • 객체복사
  • item9
  • 메이븐 페이즈
  • 작업기억공간
  • 알고리즘
  • 싱글턴
  • 디자인패턴
  • 프로그래머의 뇌
  • 이펙티브 자바 item9
  • 러스트
  • 스프링 검증
  • 자바스크립트
  • Java
  • 토비의 스프링
  • 자바스크립트 인터뷰
  • 자바스크립트 면접
  • next js app
  • 자바
  • 빈 검증
  • Javadoc 자바독 자바주석 주석 Comment
  • serverless computing
  • NEXT JS
  • item8
  • 자바 디자인패턴

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Jake Seo

제이크서 위키 블로그

인프라/용어

메세지 브로커 (Message Broker) 란?

2023. 4. 8. 12:39

메세지 브로커 (message broker) 란?

  • 안정적인 비동기 방식으로 메세지를 교환하여 분산된 시스템 혹은 애플리케이션 간의 통신을 돕는다.
  • 생산자와 소비자간 중개자 역할을 하여 두 시스템이 완전히 독립적으로 작동할 수 있도록 돕는다.
  • 컴포넌트간 느슨한 결합 (loose coupling) 을 돕는다.
    • 이 구조는 확장성을 증대시켜주고 장애가 미치는 여파를 줄일 수 있습니다.
  • 메세지 큐, 토픽과 같은 데이터구조를 통해 메세지를 임시로 저장해두었다가 적절한 수신자에게 보내줍니다.

핵심 기능

  • 비동기 커뮤니케이션
  • 디커플링
  • 메세지 라우팅 및 필터링
  • 영속성과 신뢰성
  • 스케일링
  • 로드밸런싱과 장애 내성

비동기 커뮤니케이션 (Asynchronous communication)

  • 시스템이 비동기로 소통할 수 있도록 돕는다.
  • 송신자와 수신자가 서로의 응답 메세지를 기다릴 필요 없이 서로 독립적으로 운영될 수 있도록 돕는다.

디커플링 (Decoupling)

  • 컴포넌트를 분리시켜 독립적으로 컴포넌트들이 진화할 수 있도록 돕는다.
  • 독립된 시스템은 유지보수의 복잡성이 낮아지게 만들 수 있다.

메세지 라우팅 및 필터링 (Message routing and filtering)

  • 라우팅 룰, 패턴, 메세지 프로퍼티 등을 제공하여 적절하게 메세지를 라우팅할 수 있다.
  • 라우팅을 통해 필터링된 특정 소비자에게 메세지를 가도록 설정할 수 있다.

영속성과 신뢰성 (Persistence and Reliability)

  • 시스템 장애 시에도 메세지 브로커는 자신이 받았던 메세지를 보관한다.
  • 다양한 QoS(Quality of Service) 를 제공하여, 적어도 한번, 정확히 한번 등의 옵션을 제공한다.

스케일링 (Scalability)

  • 수평적 스케일링이 가능하여 많은 양의 메세지 부하를 처리할 수 있다.

로드밸런싱과 장애 내성 (Load balancing and fault ttolerance)

  • 소비자들에게 균일하게 메세지를 나눠주어 부하의 균형을 유지할 수 있다.
  • 소비자가 메세지를 받는 것에 실패한 경우에 인지가 가능하고, 다른 대체 소비자에게 메세지를 보내는 것도 가능하다.

잘 사용되는 메세지 브로커 제품들

  • RabbitMQ
  • Apache Kafka
  • Amazone Simple Queue Service (SQS)
  • Google Cloud Pub/Sub
반응형
저작자표시 비영리 (새창열림)

'인프라 > 용어' 카테고리의 다른 글

publish-subscribe pattern (pub sub pattern, 발행자 구독자 패턴) 이란?  (0) 2023.04.08
AOF (Append Only File) 란?  (0) 2023.04.08
Binary Safe (바이너리 안전, 이진 안전) 문자열이란?  (0) 2023.04.08
CDN (Content Delivery Network) 이란?  (0) 2023.03.29
L2 스위치란?  (0) 2022.09.04
    '인프라/용어' 카테고리의 다른 글
    • publish-subscribe pattern (pub sub pattern, 발행자 구독자 패턴) 이란?
    • AOF (Append Only File) 란?
    • Binary Safe (바이너리 안전, 이진 안전) 문자열이란?
    • CDN (Content Delivery Network) 이란?
    Jake Seo
    Jake Seo
    ✔ 잘 보셨다면 광고 한번 클릭해주시면 큰 힘이 됩니다. ✔ 댓글로 틀린 부분을 지적해주시면 기분 나빠하지 않고 수정합니다. ✔ 많은 퇴고를 거친 글이 좋은 글이 된다고 생각합니다. ✔ 간결하고 명료하게 사람들을 이해 시키는 것을 목표로 합니다.

    티스토리툴바