rabbitmq python 예제

avatar
| Uncategorized

RabbitMQ의 작동 방식 예제를 사용하여 이해해 보겠습니다: 서버에서 교환을 나열하려면 유용한 Rabbitmqctl을 실행할 수 있습니다: 예제를 성공적으로 사용하려면 실행 중인 RabbitMQ 서버가 필요합니다. 여기에서 RabbitMQ 자습서에서 파이썬 코드 예제를 찾을 수 있습니다. 피카. 차단연결 어댑터 예외 처리를 사용하여 연결 오류를 확인할 수 있습니다. 다음은 매우 기본적인 예입니다: 메시지를 보낼 큐를 만들어야 합니다. 생산자는 메시지를 보내기 위해 큐가 필요하지 않지만 이 예제에 대해 큐를 만듭니다. 다시마에는 이에 대한 Queue 클래스가 있습니다. 큐의 이름, 교환 및 큐가 교환에 바인딩될 라우팅 키를 지정해야 합니다. 메시지 브로커와 puka가 완벽하게 작동하는지 테스트하고 송신 및 수신 메시지가 실제로 작동하는 방식을 파악하려면 rabbit_test.py라는 샘플 파이썬 스크립트를 만들면 위의 예제를 사용하여 각 큐에 대한 소비자를 지정할 수 있습니다. : 파이썬 3와 다시마를 사용하여 프로듀서를 만들어 봅시다. Kombu는 AMQP 프로토콜을 사용하는 파이썬 메시징 라이브러리입니다.

명령줄에서 임의의 메시지를 보낼 수 있도록 이전 예제에서 send.py 코드를 약간 수정합니다. 이 프로그램은 작업 대기열에 작업을 예약하므로 new_task.py: rabbitmqctl list_bindings를 사용하여 코드가 실제로 바인딩 및 큐를 만드는지 확인할 수 있습니다. 두 개의 receive_logs.py 프로그램을 실행하면 다음과 같은 것을 볼 수 있습니다 : 이전 코드에서 이미 선언 한 u2012로 큐를 다시 선언하는 이유를 요청할 수 있습니다. 큐가 이미 있다고 확신하는 경우 이를 피할 수 있습니다. 예를 들어 send.py 프로그램이 이전에 실행된 경우입니다. 그러나 어떤 프로그램을 먼저 실행할지 아직 확실하지 않습니다. 이러한 경우 두 프로그램에서 큐선언을 반복하는 것이 좋습니다. 다른 스레드에서 처리된 메시지는 연결 어댑터 인스턴스에 대한 모든 액세스가 어댑터의 I/O 루프를 실행하는 스레드인 단일 스레드에서 온 것이어야 하므로 해당 스레드에서 직접 승인되지 않을 수 있습니다.

이 작업은 어댑터의 I/O 루프 스레드에서 실행될 콜백을 요청하여 수행됩니다. 예를 들어 콜백 함수의 구현은 다음과 같이 보일 수 있습니다. 아래에 설명된 예제에서는 교환에 바인딩된 세 개의 큐가 있습니다: A, B 및 C. 큐 A와 B는 라우팅 키 BOB를 사용하여 exchnage에 바인딩되고 큐 C는 라우팅 키 BLUE로 바인딩됩니다. 생산자는 BOB의 라우팅 키가 있는 메시지를 보내고 교환은 큐 C의 라우팅 키가 일치하지 않기 때문에 큐 A와 B에만 메시지를 넣습니다.