[컴] RabbitMQ 란?

RabbitMQ 의 역할 ?  / RabbitMQ 사용법 / RabbitMQ 간단한 예제


update, 2023-07

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

  1. Apache Kafka
  2. What is Apache Kafka? | AWS > Apache Kafka vs RabbitMQ 
    1. 쿠...sal: [컴] kafka 특징
  3. 쿠...sal: [컴] RabbitMQ 자료들
  4. Part 1: RabbitMQ for beginners - What is RabbitMQ? - CloudAMQP





댓글 없음:

댓글 쓰기