250x250
Notice
Recent Posts
Recent Comments
관리 메뉴

탁월함은 어떻게 나오는가?

[DevOps] 메시지 큐잉이란? 본문

[Snow-ball]server/devOps

[DevOps] 메시지 큐잉이란?

Snow-ball 2023. 5. 16. 15:23
반응형

메시지 큐잉 정의

메시지 큐잉을 사용하면 프로그램이 일괄된 애플리케이션 프로그래밍 인터페이스(API)를 사용하여 다른 컴포넌트(프로세서, 운영 체제, 서브시스템 및 통신 프로토콜)의 네트워크에서 서로 통신할 수 있다. 특히나, 서버리스 및 마이크로 서비스 아키텍처에 사용되는 비동기식 서비스 대 서비스 통신 형태이다. 메시지는 처리되고 삭제되기 전까지 큐에 저장된다.

 

 

 


 

 

 

단어 정의

- 메시지: 메시지는 바이트 문자열이며 문자열을 사용하는 애플리케이션에 의미가 있다. 메시지는 하나의 애플리케이션 프로그램에서 다른 애플리케이션 프로그램으로 (또는 동일한 애플리케이션의 다른 파트 사이에서) 정보를 전송하는데 사용 된다.

- 메시징: 프로그램은 서로 직접 호출하기 보다는 메시지로 데이터를 서로 송신하여 통신한다.

- 큐: 메시지를 저장하는 데 사용되는 구조이다. 각 큐는 큐 관리자가 소유한다. 큐 관리자는 소유한 큐를 유지보수하고 적절한 큐로 수신한 모든 메시지 저장을 담당한다. 애플리케이션 프로그램 또는 큐 관리자의 일반적인 조작으로 큐에 메시지를 배치할 수 있다.

- 큐잉: 메시지는 스토리지의 큐에 배치되어 프로그램이 다른 속도와 시간에, 여러 위치에서, 서로간에 논리적 연결 없이 독립적으로 실행될 수 있다.

- 큐 관리자: 애플리케이션에 큐잉 서비스를 제공하는 시스템 프로그램이다. 큐 관리자는 애플리케이션 프로그래밍 인터페이스(API)를 제공하여 프로그램이 큐로부터 메시지를 넣고 가져올 수 있도록 한다. 큐 관리자는 관리자가 새 큐를 작성하고, 기존 큐의 특성을 대체하고 큐 관리자의 조작을 제어할 수 있도록 추가 기능을 제공한다.

 

 


 

 

메시지 큐잉 목적

메시지 큐잉은 오랜 기간 사용되어 왔다. 대표적으로 전자 메일에서 사용되고 있다.

큐잉 없이 전자 메시지를 장거리 송신하는 경우 라우트의 모든 노드가 메시지 전달에 대해 사용 가능해야 하고 주소가 로그온되어야 하며 사용자가 이 주소에 메시지 송신을 시도한다는 사실을 인식하고 있어야 한다.

하지만, 큐잉 시스템에서는 시스템이 메시지를 전달할 준비가 될 때까지 메시지는 중간 노드에 저장된다. 최종 목적지에서 주소가 메시지를 읽을 준비가 될 때 까지 메시지는 전자 편지함에 저장된다.

 

다른 프로그램과 통신하려면 프로그램이 사전정의된 큐에 메시지를 넣어야 한다. 다른 프로그램은 큐에서 메시지를 검색하고 메시지에 포함된 요청 및 정보를 처리한다. 따라서 메시지 큐잉은 프로그램 대 프로그램 통신의 스타일이다.

 

큐잉은 애플리케이션이 메시지를 처리할 준비가 될 때까지 메시지가 보유되는 메커니즘이다. 

- 통신 코드를 작성할 필요 없이 프로그램(각각 다른 화경에서 실행될 수 있음) 간에 통신한다.

- 프로그램이 메시지를 처리하는 순서를 선택한다.

- 메시지 수가 임계값을 초과할 때 둘 이상의 프로그램이 큐를 서비스하도록 구성하여 시스템에 로드를 밸러스화한다.

- 1차 시스템이 사용 가능하지 않은 경우 대체 시스템이 큐를 서비스하도록 구성하여 애플리케이션의 사용 가능성을 증가시킨다.

 

 

 


 

 

 

메시지 큐 개념

메시지 큐는 메시지를 송신할 수 있는 이름 지정된 목적지이다. 큐를 서비스하는 프로그램이 메시지를 검색할 때까지 메시지는 큐에 저장된다. 메시지 큐는 분산 애플리케이션을 위한 통신 및 조정 기능을 제공한다. 메시지 대기열은 결합 해제된 애플리케이션의 코딩을 상당히 간소화하면서 송시에 성능, 안정성 및 확장성을 개선 할 수 있다. 

 

메시지 큐를 사용하면 시스템의 서로 다른 부분이 통신하고 비동기식으로 작업을 처리할 수 있다. 메시지 대기열은 메시지를 임시로 저장하는 간단한 버퍼를 제공하고, 메시지를 전송 및 수신하기 위해 소픝츠웨어 구성 요소가 대기열에 연결하도록 허용하는 엔드포인트를 제공한다. 메시지는 보통 크기가 작으며, 요청, 응답, 오류 메시지 또는 데이터가 될 수 있다. 메시지를 전송하려면 Producer(생산자)가 메시지를 대기열에 추가한다. 해당 메시지는 Consumer(소비자)가 메시지를 검색하고 이를 사용해 어던 작업을 수행하 때까지 대기열에 저장된다.

 

큐 관리자에서 큐가 상주하고 관리된다. 큐의 물리적 틍성은 큐 관리자가 실행되는 운영체제에 따라 다르다. 큐는 컴퓨터 메모리의 휘발성 버퍼이거나 영구 스토리지 디바이스(ex: 디스크)에서 데이터 세트일 수 있다. 

 

 

 


 

 

 

메시지 큐잉의 종류

포인트-투-포인트 (1:1)

큐에는 메시지가 한 개만 배치되며 하나의 애플리케이션이 해당 메시지를 수신한다.

 

포인트-투-포인트 메시징에서 송신 애플리케이션이 수신 애플리케이션에 대한 정보를 알아야 수신 애플리케이션으로 메시지를 송신할 수 있다. 예를 들어, 송신 애플리케이션은 정보를 송신할 큐 이름을 알아야 하며 큐 관리자 이름도 지정할 수 있다.

 

발행/구독 (1:N)

발행 애플리케이션이 발행하는 각 메시지의 사본은 모든 관련 애플리케이션으로 전달된다. 관련 애플리케이션이 하나 또는 여러 개일 수 있으며, 전혀 없을 수도 있다. 발행/구독에서 관심 애플리케이션은 구독자로 알려지며 메시지는 구독으로 식별되는 큐에 저장된다.

 

발행/구독 메세징을 사용하면 해당 정보의 이용자와 정보 제공자를 분리할 수 있다. 정보가 송수신되기 위해 송신 애플리케이션과 수신 애플리케이션이 서로에 대해 어느 것도 알 필요가 없다. 발행자는 정보를 발행할 때 토픽을 지정하고, 구독자는 수신할 발행물에 대한 토픽을 지정한다. 구독자는 구독하는 토픽에 대한 정보만 수신한다. 발행자와 구독자 간 상호작용은 큐 관리자에 의해 모두 제어된다. 큐 관리자는 발행자로부터 메시지를 수신하고 구독자로부터 구독을 수신한다(토픽 범위까지). 큐 관리자의 작업은 메시지 토픽에서 관심사를 등록한 구독자에게 발행된 메시지를 라우팅하는 것이다.

 

밑에 그림은 간단한 발행/구독 시스템의 예이다. 

 

 

 


 

 

 

메시지 큐잉의 이점

애플리케이션 프로그램은 메시지 큐잉을 사용하여 메시지에 의한 처리에 참여할 수 있다. 애플리케이션 프로그램은 적절한 메시지 큐잉을 사용하여 여러 플랫폼 사이에서 통신할 수 있다.

그 밖에도 이점으로는

1) 여러 애플리케이션에서 공유할 수 있는 소형 프로그램을 사용하여 애플리케이션을 설계할 수 있다.

2) 메시지 큐잉을 사용하여 새 애플리케이션을 빠르게 만들 수 있다.

3) 메시지 큐잉 기술을 사용하도록 작성된 애플리케이션은 큐 관리자가 작업하는 도중에 발생한 변경사항에 영향을 받지 않는다.

4) 통신 프로토콜을 사용할 필요가 없다. 큐 관리자는 사용자를 위해 통신의 모든 측면을 다룬다.

5) 메시지가 프로그램에 송신될 때 메시지를 수신하는 프로그램이 실행 중일 필요는 없다. 메시지 큐에 보관된다.

 

 

 

 

 

 

 

reference

* aws, 메시지 대기열

* IBM, 메시지 큐잉 용어

* IBM, 발행/구독 컴포넌트의 개요

* IBM, IBM WebSphere MQ 발행/구독 메시징 소개

* IBM, 메시지 및 큐

* IBM, 메시지 큐잉 소개

반응형
Comments