머리말
일부 지역에서는 정보 처리의 정확성을 보장하기 위해 메시지 큐가 사용됩니다. 예를 들어, 동시성이 높은 상황에서는 웹사이트가 데이터 처리를 수행합니다. 오늘 이 글에서는 RabbitMQ의 간단한 데모를 기록합니다. 이 글에 들어가기 전에, RbMQ 환경은 미리 설치해야 합니다(예전에 로컬 RbMQ 환경을 설치했기 때문에, 삭제 시 레지스트리가 깨끗하지 않은 문제가 생길까 걱정되어 설치 과정을 기록하지 않겠습니다).
환경 및 도구
>윈도우 10 시스템
>RabbitMQ 환경 서비스
>VS 2017
문자 메시지
1: "RabbitMQClient"와 "RabbitMQServer" 두 개의 새로운 콘솔 애플리케이션을 생성합니다.
2: "RabbitMQ.Client" dll을 참고하세요
3: RabbitMQClient 프로젝트에서 Program.cs 다음 코드를 붙여넣으세요
4: RabbitMQServer 프로젝트에서 다음 코드를 붙여넣으세요, Program.cs
5: F5를 눌러 RabbitMQServer 프로젝트를 시작하고, 콘솔에서 정보를 입력한 후 엔터를 누르세요.
6: RabbitMQServer 프로젝트 콘솔을 닫지 말고, RabbitMQClient 프로젝트를 우클릭하세요 - "디버그" > - > "새 인스턴스 시작"
오른쪽에 있는 RabbitMQServer 콘솔에 정보를 입력하면 왼쪽에 표시할 수 있습니다. RabbitMQServer 프로젝트는 메시지를 생성합니다. RabbitMQClient 프로젝트는 메시지를 처리(소비) 합니다. 이는 메시지 큐 내 생산자와 소비자입니다. 코드에는 라우팅과 채널도 포함되어 있습니다.
메시지 생성자 측에서는 처리할 정보를 메시지 큐에 넣습니다. 메시지를 받은 후 소비자는 이 데이터를 적절히 처리할 수 있습니다.
환경이 설치되어 있다면 로컬 기본 포트 주소는 http://localhost:15672/#/queues 되어야 합니다. 게스트 계정에 직접 접근할 수도 있고, 명령줄을 탭해 계정 및 해당 권한을 설정할 수도 있습니다.
RabbitMQServer 콘솔에 입력한 정보는 실제로 먼저 메시지 큐에 존재합니다. 먼저 RabbitMQClient 창을 닫고, 창에 몇 가지 정보를 입력해 메시지 큐를 관찰하면 큐에 세 개의 데이터가 있다는 것을 알 수 있습니다.
RabbitMQClient 창이 시작되면, 메시지는 정상적으로 받은 후 자동으로 메시지 큐에서 사라집니다. 이것이 메시지 큐의 확인 메커니즘이며, 필요한 정보가 정확히 수신되면 소비자는 메시지를 파기하기 위해 메시지 큐에 상태를 반환합니다. 소비자가 메시지를 받지 못하거나 예외가 있는데 이 상태 값을 반환하지 않으면, 메시지는 정상적으로 소모될 때까지 대기열에 남아 메시지의 정확성을 보장합니다.
에필로그
안타깝게도 제 프로젝트에서 메시지 큐를 사용하는 곳은 거의 없습니다. 깊이 있는 이해가 없으면 기본만 사용될 것입니다.
위 데모에는 구멍이 있고, RabbitMQClient에서 RbMQ의 연결에는 사용법 계층이 있습니다. 비동기 스레드이기 때문에 프로그램이 메시지를 수신하기 전에 RbMQ 연결을 재순환시키고 오류가 보고됩니다. 대처 방법은 사용을 중단하고 수동으로 방출하는 것입니다.
|