update, 2023-07
- Home | BlazingMQ Documentation : bloomberg 에서 만든 BlazingMQ 라는 것도 있다.
RabbitMQ
sources from : RabbitMQ - RabbitMQ tutorial - "Hello world!"
환경
OS : windows 7
RabbitMQ 를 설치하면 service 에 등록을 해준다.(물론 안할 수도 있다.) 여하튼 그래서 이 service 가 실행된 상태에서 예제에 있는 send.py / receive.py 를 실행할 수 있다.
대략적인 개념은 아래와 같다.
Message Message send.py -------------> RabbitMQ --------------> receive.py
그럼 여기서 궁금증은 "왜 RabbitMQ 가 필요한 것인가?" 이다.
보통 queue 를 네트워크로 분리시켜놨다. 원래 A 와 B 의 2개의 네트워크 통신을 하는 객체가 있었다면, queue 를 네트워크로 통신하는 상태로 attach 시켰다고 보면 된다.
RabbitMQ로 무엇을 할까?
흔히 서버라고 하는 것이 무엇인지 생각 해 보자. client 에서 받은 request 를 받아서 처리해주고 response 를 주는 역할을 한다.빠른 개발
만약 서버에서 network 통신부분만 해결 해 버린다면, server 의 남은 부분은 client 와 다르지 않다.이런 부분을 RabbitMQ 가 대신 해 준다.
당신이 server 를 만들고, 그 server 로 어떤 request 를 받아서 response 를 줘야한다면, request 를 받는 부분을 RadditMQ 에서 대신해 주고, 당신이 만든 server 프로그램에 넘겨줄 것이다.
그리고 response 를 줘야 하는 경우도 RadditMQ 에 response 를 넘겨준다면, 그것을 client 쪽에서 받아서 처리하게 될 것이다.
통신 부분에서 상호작용하는 부분은 결국 queue 부분에서 이뤄진다.
이 부분을 RadditMQ 가 해주므로써 개발할 부분이 줄어들고, 손쉽게 network programming 을 할 수 있게 된다.
이런 queue 의 network 상의 구현이 존재한다면, 우리는 손쉽게 우리의 application 들을 network 상으로 옮길 수 있을 것이다. 2개의 process 나 thread 로 구현했던 application 들을 network 상으로 옮기는 등의 작업등이 수월해 질 듯 하다.
분산 처리
그리고 분산 프로그래밍이 훨씬 수월해질 듯 하다. request 가 네트워크 queue 로 모이게 되면, 여기서 여러 node 에서 가져다 process 를 할 수 있게 된다.See Also
- Apache Kafka
- What is Apache Kafka? | AWS > Apache Kafka vs RabbitMQ
- 쿠...sal: [컴] RabbitMQ 자료들
- Part 1: RabbitMQ for beginners - What is RabbitMQ? - CloudAMQP
댓글 없음:
댓글 쓰기