미들웨어(Middleware)
- 미들웨어는 서로 다른 애플리케이션이 통신하는데 사용되는 소프트웨어를 말한다.
- 미들웨어는 OS와 해당 OS 상에서 실행되는 애플리케이션 사이에 존재하는 소프트웨어이다.
- 단일 시스템에 원할하게 통합할 수 있도록 다양한 기수르 도구, 데이터베이스 간에 다리 역할을 한다.
- 웹 브라우저가 데이터베이스로부터 데이터를 저장하거나 읽어올 수 있도록 미들웨어가 존재한다.
미들웨어의 종류
- DB 접속 미들웨어: 애플리케이션과 데이터베이스 서버를 연결해주는 미들웨어
- 웹 애플리케이션 서버(Web Application Server): 애플리테이션과 데이터베이스 서버를 연결해주는 미들웨어
- 메시지 지향 미들웨어(Message Oriented Middleware, MOM)
- 분산 응용 프로그램 간에 미시지를 보내고 받으면서 데이터를 전달하고 교환할 수 있도록 한다.
- 메시징 공급자를 사용해서 메시징 작업을 중재한다.
- 클라이언트, 메시지, MOM 공급자(API, 관리 도구 포함)로 구성된다.
- 메시지를 통해 여러 분산되어 있는 시스템간의 Connector 역할로 결합성을 낮추고 이들끼리 서로 실시간 비동기식 데이터 교환하는 소프트웨어
- 단점: 느슨한 연결 (RPC 시스템에서 호출 함수는 호출된 함수가 작업을 완료할 때까지 반환되지 않는다. )
- 원격 프로시저 호출(Remote Procedure Call, RPC): 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있게 하는 프로세스 간 통신 기술이다.
- ORB(Object Request Broker)
- TP 모니터(Transaction Processing monitor)
- 엔터프라이즈 서비스 버스(Enterprise Service Bus)
MOM이 비동기 방식으로 처리되는 이유
- MOM(Message Oriented Middleware)은 일반적으로 메시지를 비동기적으로 처리하므로 메시지의 발신자와 수신자가 동시에 활성화될 필요가 없다. 이는 전송 및 수신 프로세스를 분리하고 분산 시스템의 유연성과 확장성을 향상시키기 위해 수행된다.
- 비동기 메시징을 사용하면 발신인이 대기열 또는 주제로 메시지를 보낸 다음 응답을 기다리지 않고 다른 태스크를 계속 수행할 수 있다. 그런 다음 메시지를 수신할 수 있게 되면 메시지가 수신자에게 배달된다. 즉, MOM 시스템은 많은 수의 메시지를 처리하고 발신자가 각 수신자가 메시지를 처리할 때까지 기다리지 않고 여러 수신자에게 배포할 수 있다.
- 메시지가 신뢰할 수 있고 올바른 순서로 전달되도록 하기 위해 MOM 시스템은 일반적으로 다양한 형태의 메시지 큐 및 라우팅을 구현한다. 여기에는 대기열의 메시지를 버퍼링하고 라우팅 알고리즘을 사용하여 각 메시지를 수신할 수신자를 결정하는 작업이 포함된다. 이러한 프로세스는 일반적으로 비동기적으로 처리되므로 메시지가 대기열에 저장되고 라우팅되는 동안 시스템이 메시지를 계속 처리하고 다른 작업을 수행할 수 있다.
- 또한 비동기 메시징을 사용하면 분산 시스템에서 내결함성과 복원력이 향상된다. 수신인을 일시적으로 사용할 수 없거나 메시지를 처리하지 못하는 경우, 발신인 또는 다른 수신인을 차단하지 않고 메시지를 다시 시도하거나 대체 수신인에게 라우트할 수 있다.
- 요약하면, 메시지의 비동기 처리 및 전송은 분산 시스템에서 더 큰 유연성, 확장성 및 내결함성을 가능하게 하는 메시지 지향 미들웨어의 핵심 기능이다.
cf) 내결함성(Fault Tolerance)
- 하나 이상의 구성 요소가 고장나도 시스템이 중단 없이 계속 작동할 수 있는 능력을 말한다.
- 장애가 생기면 우회하는 방식으로 서비스를 지속하는 방식을 내결함성 있다고 한다.
- <=> 고가용성: 장애가 생기면 빠른 시간 안에 장애를 고치고 서비스를 지속하는 방식을 고가용성 있다고 한다.
참고)
'개발 일지 > Apache Kafka' 카테고리의 다른 글
Apache Kafka와 구성 요소 (2) | 2023.03.12 |
---|---|
메시지 브로커(Message Broker) (0) | 2023.03.07 |