메시지 큐 예제

큐 기반 솔루션을 고려하기 시작하면 CloudAMQP는 메시지 큐 RabbitMQ의 호스팅을 제공합니다. RabbitMQ는 고급 메시지 큐 프로토콜(AMQP)을 구현하는 오픈 소스 메시지 지향 미들웨어입니다. AMQP에는 대기열, 라우팅, 안정성 및 보안과 같은 기능이 있습니다. CloudAMQP에 대한 자세한 내용은 여기에서 확인할 수 있습니다. 메시징 미들웨어 시스템의 오픈 소스 선택의 숫자가 있다, 아파치 ActiveMQ를 포함 하 여, 아파치 카프카, 아파치 Qpid[5], 아파치 로켓MQ, 빈 스토크, 엔듀로/X, HTTPSQS[6], JBoss 메시징, JORAM, 토끼MQ, 태양 오픈 메시지 큐, 그리고 타란 툴. 메시지 큐 예제에 대한 그림 6.9 로컬 헤더 파일입니다. 프로그램 6.4로 표시된 클라이언트 프로그램은 PID를 획득하여 시작합니다. 이 값은 나중에 서버에 전송된 메시지를 표시하여 특정 클라이언트 프로세스에서 오는 것으로 식별하는 데 사용됩니다. ftok 라이브러리 함수는 키를 생성하는 데 사용됩니다. 클라이언트 프로세스가 호출될 때 아직 존재하지 않는 경우 메시지 큐를 만들려고 합니다. 또한 서버 프로세스가 없는 경우 클라이언트가 서버 프로세스를 시작하기를 원합니다. 메시지 큐가 없는 경우 서버 프로세스도 존재하지 않는다고 가정합니다. 이를 위해 19번 줄의 mid=msgget(키, 0)에 대한 초기 호출을 테스트하여 호출이 실패했는지 확인합니다.

메시지 큐를 찾을 수 없는 경우(호출실패) msgget 에 대한 두 번째 호출에 의해 메시지 큐가 만들어집니다. 이 경우 클라이언트 프로세스는 자식 프로세스를 포크하고 서버 프로세스를 실행하기 위해 exec에 대한 호출로 오버레이합니다. 서버는 명령줄을 통해 메시지 큐 식별자를 전달합니다. 모든 명령줄 인수는 문자열이기 때문에 sprintf 문자열 함수는 메시지 큐 식별자를 올바른 형식으로 넣는 데 사용됩니다. 프로그램이 언젠가 또는 다른 시간에 큐를 정리하도록 할 수 있으므로 후자의 선택이 가장 적합한 경우가 많습니다. 이렇게하려면 다른 기능인 msgctl()을 도입해야 합니다. 해적을 잡기 위해 위에서 만든 대기열이 있다고 가정해 봅시다. 다음 호출을 실행하여 해당 큐를 파괴할 수 있습니다.

하나의 바이트 배열만 메시지 큐에 넣을 수 있습니까?! 가격대비 괜찮은 호텔” 정답이 아닙니다. 첫 번째 요소가 긴 경우 큐에 메시지를 넣을 모든 구조를 사용할 수 있습니다. 예를 들어 이 구조를 사용하여 모든 종류의 장점을 저장할 수 있습니다. 일반적인 메시지 큐 에 있는 구현에서 시스템 관리자는 메시지 큐 에 있는 소프트웨어(큐 관리자 또는 브로커)를 설치하고 구성하고 명명된 메시지 큐를 정의합니다. 또는 메시지 대기열 서비스에 등록합니다. 메시지 큐의 기본 아키텍처는 간단하며 메시지를 만들고 메시지 큐에 배달하는 생산자라는 클라이언트 응용 프로그램이 있습니다. 소비자라는 다른 응용 프로그램은 큐에 연결하고 메시지를 처리하도록 가져옵니다. 큐에 배치된 메시지는 소비자가 큐를 검색할 때까지 저장됩니다. 모든 프로세스는 공통 시스템 메시지 큐에 대한 액세스를 통해 정보를 교환할 수 있습니다. 전송 프로세스는 일부(OS) 메시지 전달 모듈을 통해 메시지를 다른 프로세스에서 읽을 수 있는 큐에 배치합니다. 각 메시지에는 프로세스가 적절한 메시지를 선택할 수 있도록 식별 또는 유형이 제공됩니다.

© 2020 A MarketPress.com Theme