본문 바로가기

Develop/etc10

RabbitMQ의 메시지 전달 방식 (Direct, Fanout, Topic, Headers Exchange) 래빗엠큐로 살펴보는 메시지 프로듀서의 메시지 전달 방식을 알아보자. 래빗엠큐가 아니더라도 Kafka, JMS 등 다른 메시지브로커들도 비슷한 모델을 사용한다. 하나를 알면 열을 안다...!! 기본적으로 구독-발행 시스템을이용한다고 생각하면 된다. 유튜브 구독을 예시로 들면 특정 사용자에게만 알림 보내기, 전체 사용자에게 알림 보내기, 특정 유튜버 구독자에게만 알림 보내기 처럼 이해하면 쉽다. Binding : 익스체인지가 어떤 큐에 메시지를 적재할지 정하는 규칙 Exchange : 프로듀서로 부터 발행된 메시지를 받고, 큐에 메시지를 라우트한다. 라우팅 알고리즘은 익스체인지 타입과 바인딩 규칙에 따른다. Direct Exchange Key 값에 해당하는 큐에만 메시지를 적재한다. 유니캐스트와 개념이 비슷.. 2023. 4. 19.
R Socket이란 무엇일까? 리액티브 스트림의 근간을 다루는 개념은 바로 배압(backpressure)이다. 하지만 HTTP는 리액티브하지 않다. HTTP는 요청-응답 패러다임에 뿌리를 두고 있다. 과거의 개발자들은 HTTP를 사용하는 단순 요청-응답을 넘어서 터널로 서로 연결하는 방법을 고민해왔다. > 첫 번째, 롱 폴링 클라이언트가 서버에 요청을 보낸 후 즉각적인 대답을 기대하지 않고, 오래 기다리더라도 서버의 응답을 기다린다. 응답을 받으면 처리하고 바로 새로운 요청을 서버에 보내 기다리는 식으로 연결 지속성을 확보한다. 하지만 자원을 점유한다는 한계가 있다. > 두 번째, 웹소켓 웹소켓은 HTTP와는 다르게 양방향이다. 가볍고 양방향 비동기 통신을 지원하지만 배압 개념이 없으므로 리액티브하지 않다. RSocket 리액티브 프.. 2023. 3. 20.