프로그래밍/Data process

RabbitMQ를 사용해서 데이터를 넣고, 꺼내와 보자

Dibrary 2022. 7. 20. 09:50
반응형

안녕하세요 Dibrary입니다.

이번에는 rabbitMQ를 사용해서 데이터를 넣고, 꺼내와 보겠습니다.

넣는 위치와 꺼내는 위치를 다르게 할 수 있다는 점에서 다양한 구성을 해서 데이터의 흐름을 만들 수 있는 좋은 기술이죠.

 


서버 실행 후에(설치 하면 자동으로 실행 중이겠죠?)
웹 브라우저에서 localhost:15672를 입력하면 아래와 같은 로그인 창이 나옵니다.

 

처음이라면 username도 guest, password도 guest입니다. 로그인에 성공하면 아래와 같은 기본 화면이 나옵니다.

 

그러면 간단하게 하나의 virtual host, queue를 만들어서 파이썬으로 데이터를 넣고 꺼내보겠습니다.

 

위 화면에서 admin 탭으로 가주세요.

오른쪽에 Virtual Hosts를 눌르시면 아래와 같은 화면이 나옵니다.

밑에 Name과 Tags 등 빈 칸을 채운 후에 Add virtual host 버튼을 누르면 새 Virtual Host가 생성됩니다.

꼭 mq_test라고 짓지 않아도 됩니다. 

예를 들면, 제가 현재 다루는 것으로 구분한다고 할 때

  1. P-1 (P-1에 큐는 3개, validation, alarm, maintenance)
  2. P-2 (P-2에 큐는 2개, flow, pressure)

뭐 이런식으로, 각자 메시지 큐잉 시스템으로 어떻게 처리할지 생각한 후에 맞게 생성해 주시면 됩니다.

 

추가된 virtual host의 name을 클릭해보면 아래와 같은 화면이 나옵니다.

여기서 어떤 사용자만 접근이 가능하게 할지 설정할 수 있습니다. 사용자 계정이 여러 개일 경우 선택한 후 Set permission 버튼을 누르시면 됩니다.

 


이제 위에 Queues 탭으로 이동하면 큐를 생성할 수 있습니다.

여기서 virtual host는 아까 생성한 mq_test를 선택할 수 있습니다. 물론, 여러개를 만들어도 모두 선택이 가능합니다. (select box로 되어있죠)

name도 용도에 맞게 지으시면 됩니다. (저는 테스트 후에 추가로 validation, maintenance, alarm이라는 큐를 만들었습니다.)

 

파이썬에 아래의 코드를 입력합니다. 아래 코드는 queue객체에 해당 메시지를 넣습니다.

데이터는 for문이 돌면서 들어가는데, Hello World 숫자 가 계속 들어가겠네요.

 

데이터를 넣게 되면 아래와 같이 queues 탭에서 Overview에 있는 그래프가 바뀝니다.  0에서 갑자기 20으로 올라간 것을 보실 수 있습니다.

 

데이터를 가져오는 코드는 아래와 같습니다.

queue와 vhost가 위에서 만든 것과 같음을 보실 수 있습니다.

해당 코드는 실행하면 계속 실행 중에 있습니다. 따라서, queue에 아무때나 데이터를 넣어도 그 순간 바로 받아와서 출력합니다.

우선 출력을 하자마자 Overview를 보시면 20에서 0으로 떨어진 것을 볼 수 있습니다. 20개의 들어있는 데이터를 다 꺼내와서 0개가 된 것이죠.

 

출력도 정상으로 나타납니다. 참고로 받아온 데이터는 bytes 자료형입니다.

728x90
반응형