- Today
- Total
목록Open Source/RabbitMQ (8)
개발하는 고라니
Spring Boot 환경에서 RabbitMQ로 메세징 해보는 간단한 예제이고, 원본은 spring.io의 docs이다. 이 예제를 구현해보기 위해 RabbitMQ가 설치되어있어야 한다( 혹은 docker로 가능). 이 예제는 AMQP RabbitMQ Server를 설정하는 과정을 겪을 수 있고, 메세지를 발행(pub)과 소비(sub)하고 스프링부트 어플리케이션을 만들어 RabbitMQ 서버와 상호작용한다. Spring AMQP(Advanced Message Queuing Protocol)의 RabbitTemplage을 사용함으로써 메세지를 발행(pub)하고, MessageListenerAdapter를 사용해 POJO(Plain Old Java Object) 형태의 메세지를 소비(sub)하는 어플리케이션..
Remote procedure call (RPC) 요청 / 응답 패턴 예시 저번 2번째 튜토리얼에서 여러 worker들 사이에 시간이 걸리는 업무를 분배하는 법을 배웠다. 그러나 원격 컴퓨터에서 기능을 동작해야하고 결과를 기다려야한다면 어떨까? 이는 좀 다른 얘기이다. 이 패턴은 보편적으로 Remote procedure call 또는 RPC라고 알려져있다. 이번 튜토리얼에서 우리는 RPC 시스템을 구축하기 위해 RabbitMQ를 사용할 것이다. (하나의 client와 확장가능한 RPC서버를). 분배할 가치가 있는 어떤 업무도 갖고있지 않을 때, 피보나치 수열을 반환하는 더미 RPC 서비스를 만들 것이다. Client Interface RPC 서버 사용법을 설명하기 위해 간단한 client 클래스를 만들 ..
Topics 패턴(주제)에 기반한 메세지만 받아보기 이전 튜토리얼에서 logging System을 개선했다. * 요약 - before : 하나의 producer -> 하나의 exchange (fanout) -> 여러개의 Queue -> 각 Queue에 모든 메세지 push -> 모든 consumer 동일한 메세지 수신 - after : 하나의 producer -> 하나의 exchange (direct) -> 여러개의 Queue -> 각 Queue마다 원하는 severity의 메세지 push -> 각 consumer가 받아보는 메세지가 다를 수 있음 'fanout' 타입의 교환자는 오직 가짜 방송을 할 수 있는 대신, 우리는 'direct' 타입의 교환자를 사용했고, 선택적으로 log를 수신하는 가능성을 ..
Routing [RabbitMQ] Tutorials (3) Publish / Subscribe [RabbitMQ] Tutorials (2) Work Queues - worker들에게 작업을 분배(경쟁 consumers 패턴) 저번 포스팅에서 우리는 이름붙인 큐로부터 메세지를 주고받고 하는 프로그램을 짰다. 이번 튜토리.. dev-gorany.tistory.com 이전 튜토리얼에서 간단한 logging System을 만들어보았다. 많은 수신자들에게 로그 메세지를 송출할 수 있었다. 이번 튜토리얼에서는 특징을 추가할 것 이다. (메세지들 중 일부만 subscribe하는 것이 가능하게 할 것이다.) 예를 들어, 콘솔에서 모든 로그 메세지를 계속 출력하는 동안, 디스크 공간을 절약하기 위해 중요한 오류 메세지만..
Publish / Subscribe [RabbitMQ] Tutorials (2) Work Queues - worker들에게 작업을 분배(경쟁 consumers 패턴) 저번 포스팅에서 우리는 이름붙인 큐로부터 메세지를 주고받고 하는 프로그램을 짰다. 이번 튜토리얼에서 우리는 시간이 많이 걸리는 작 dev-gorany.tistory.com 이전 튜토리얼에서 우리는 일할 Queue를 만들었다. Queue의 뒷배경이 되는 가정은 각 업무를 하나의 worker에게 정확히 전달해주는 것이다. 이번 튜토리얼에서 우리는 완벽히 다른 무언가를 할 것 이다. (우리는 하나의 메세지를 여러 Consumer들에게 넘겨줄 것이다.) 이 규칙(패턴)은 "publish / subscribe"로 알려져있다. 이 패턴을 설명하기 위해..
Work Queues - worker들에게 작업을 분배(경쟁 consumers 패턴) 저번 포스팅에서 우리는 이름붙인 큐로부터 메세지를 주고받고 하는 프로그램을 짰다. 이번 튜토리얼에서 우리는 시간이 많이 걸리는 작업을 여러 작업자에게 분산할 'Work Queue'를 만들어 볼 것 이다. Task Queues라고 불리는 Work Queues의 핵심은 자원이 많이드는 일을 즉시 하는 것과, 그것을 완료하기 위해 기다려야만 하는 것을 피하는 것이다. 대신에 우리는 그 일을 나중에 처리하도록 조정해준다. 우리는 업무를 하나의 메세지로서 캡슐화하고, Queue에 보내버린다. 그러면 뒤에서 동작하는 worker가 업무들을 표시할 것이고 결국 일을 실행할 것이다. 당신이 많은 worker들을 구동할 때 업무들은 그..
[RabbitMQ] install RabbitMQ는 오픈소스 메세지 브로커이다. 메세지를 많은 사용자에게 전달해야하거나, 처리 시간이 긴 문제가 있을 경우, 빠른 응답을 만들기 위해 사용한다. Downloading and Installing RabbitMQ — RabbitMQ Do dev-gorany.tistory.com RabbitMQ는 메세지 브로커(Message Broker)다. 이는 메세지들을 받아주고 전달한다. 여러분은 RabbitMQ를 우체국으로 생각할 수 있다. 당신이 전달하고 싶은 편지를 우체통에 넣을 때, 우체부가 결국 당신 편지의 수취인에게 전달해줄 것을 확신할 수 있다. 이 비유에서, RabbitMQ는 우체통이고, 우체국이자 우체부이다. RabbiqMQ와 우체국 간의 주요한 차이점은 ..
RabbitMQ는 오픈소스 메세지 브로커이다. 메세지를 많은 사용자에게 전달해야하거나, 처리 시간이 긴 문제가 있을 경우, 빠른 응답을 만들기 위해 사용한다. Downloading and Installing RabbitMQ — RabbitMQ Downloading and Installing RabbitMQ The latest release of RabbitMQ is 3.8.19. See change log for release notes. See RabbitMQ support timeline to find out what release series are supported. Experimenting with RabbitMQ on your workstation? Try the community www.ra..