MSMQ (Microsoft Message Queuing) 란 무엇입니까? 어떻게 작동합니까?
MSMQ (Microsoft Message Queuing)로 작업해야합니다. 그것은 무엇이며, 무엇을 위해, 어떻게 작동합니까? 웹 서비스와 어떻게 다릅니 까?
이름에서 알 수 있듯이 큐 관리자 일뿐입니다.
개체를받을 때까지 유지 될 큐에 개체 (직렬화 됨)를 보낼 수 있습니다. 일반적으로 분리 된 방식으로 애플리케이션간에 메시지 또는 개체를 보내는 데 사용됩니다.
웹 서비스와는 아무 관련이 없습니다. 두 가지가 다릅니다.
MSMQ에 대한 정보 :
https://msdn.microsoft.com/en-us/library/ms711472(v=vs.85).aspx
WebServices에 대한 정보 :
http://msdn.microsoft.com/en-us/library/ms972326.aspx
@Juan의 대답과 관련하여 두 가지 모두 연결이 끊긴 두 프로세스, 즉 프로세스 간 통신 채널 (IPC)간에 데이터를 교환하는 방법입니다. 메시지 큐는 비동기식이고 웹 서비스는 동기식입니다. 이를 위해 서로 다른 프로토콜과 백엔드 서비스를 사용하므로 구현은 완전히 다르지만 목적은 비슷합니다.
다른 통신 프로세스를 사용할 수 없을 가능성이있을 때 메시지 큐를 사용하고 싶지만 클라이언트가 선택한 시간에 메시지를 보내야합니다. 전달은 상대방의 프로세스가 깨어나서 메시지 도착 알림을받을 때 발생합니다.
트랜잭션 대기열 관리 101
트랜잭션 대기열은 주어진 시간에 연결되거나 연결되지 않을 수있는 호스트간에 서로 다른 종류의 메시지를 비동기 적으로 라우팅하는 미들웨어 시스템입니다. 이것은 또한 메시지를 어딘가에 유지할 수 있어야 함을 의미합니다. 이러한 시스템의 예는 MSMQ 및 IBM MQ입니다.
트랜잭션 큐는 분산 트랜잭션 에도 참여할 수 있으며 롤백은 메시지 폐기를 트리거 할 수 있습니다. 즉, 메시지는 한 번만 의미 체계로 전달되거나 롤백되지 않으면 전달이 보장됩니다. 다음과 같은 경우 메시지가 전달되지 않습니다.
호스트 A가 메시지를 게시하지만 호스트 B가 연결되지 않았습니다.
무언가 (호스트 A에서 시작될 수 있지만 반드시 시작되지는 않음)가 트랜잭션을 롤백합니다.
B는 트랜잭션이 롤백 된 후 연결됩니다.
이 경우 B는 다른 매체를 통해 알리지 않는 한 메시지가 존재했음을 결코 알 수 없습니다. 트랜잭션이 롤백 된 경우 이는 문제가되지 않습니다. 트랜잭션이 롤백되기 전에 B가 메시지를 연결하고 수집하는 경우 롤백은 B에 대한 메시지의 영향도 반대로합니다.
A는 한 번만 전달되도록 메시지를 대기열에 게시 할 수 있습니다. 트랜잭션이 커밋되면 호스트 A는 메시지가 신뢰할 수있는 전송 매체에 의해 전달 되었다고 가정 할 수 있습니다 . 트랜잭션이 롤백되면 호스트 A는 메시지의 모든 효과가 반전되었다고 가정 할 수 있습니다.
웹 서비스
웹 서비스는 (일반적으로) HTTP 서버에서 게시 한 원격 프로 시저 호출 또는 기타 서비스 (예 : RESTFul API )입니다. 동기식 요청 / 응답 프로토콜이며 프로토콜에 내장 된 전달을 보장하지 않습니다. 서비스가 올바르게 실행되었는지 확인하는 것은 클라이언트의 몫입니다. 일반적으로 요청에 대한 응답 또는 통화 시간 초과를 통해 이루어집니다.
후자의 경우 웹 서비스는 최대 한 번의 의미 체계를 보장하지 않습니다. 서버는 서비스를 완료하고 응답을 전달하지 못할 수 있습니다 (서버 외부의 문제가 발생했을 수 있음). 애플리케이션은이 상황을 처리 할 수 있어야합니다.
IIRC, RESTFul 서비스는 멱등 적이어야합니다 (동일한 서비스를 여러 번 호출 한 후 동일한 상태가 달성 됨). 이는 웹 서비스 아키텍처에서 성공 / 실패에 대한 보장 된 알림 부족을 처리하기위한 전략입니다. 개념적으로는 서비스를 호출하는 대신 상태를 작성하므로 여러 번 작성할 수 있습니다. 즉, 서버에서 '성공'메시지를받을 때까지 게시를 재 시도 할 수 있으므로 성공에 대한 피드백 부족은 애플리케이션에서 용인 될 수 있습니다.
WCF (Windows Communication Foundation)를 MSMQ 위의 추상화 계층으로 사용할 수 있습니다. 이렇게하면 단방향 작업으로 만 서비스를 사용하는 느낌을받을 수 있습니다.
자세한 내용은 http://msdn.microsoft.com/en-us/library/ms789048.aspx를 참조하십시오.
--larsw
실제로 MSMQ와 WebService 사이에는 관계가 없습니다. 프로세스 간 통신에 MSMQ 사용 (소켓, Windows 메시징, 매핑 된 메모리도 사용할 수 있음) 누군가 메시지를 대기열에서 뺄 때까지 메시지를 보관하는 Windows 서비스입니다. 메시지가 하드 디스크에 저장되기 때문에 소켓보다 더 신뢰할 수 있지만 다른 IPC 기술보다 느립니다.
간단한 코드 줄로 dotnet에서 MSMQ를 사용할 수 있으며 MessageQueue
개체와 호출 Receive
및 Send
메서드를 선언 할 수 있습니다. 메시지 자체는 일반 문자열 또는 이진 데이터 일 수 있습니다.
모두가 설명했듯이 MSMQ는 메시지 대기열로 사용됩니다. 메시지는 실제 데이터, 객체 및 직렬화하여 유선을 통해 전송할 수있는 모든 것에 대한 래퍼가 될 수 있습니다. MSMQ에는 자체 한계가 있습니다. MSMQ 1.0 및 MSMQ 2.0에는 4MB 메시지 제한이 있습니다. 이 제한은 MSMQ 3.0에서 해제되었습니다. MOM (Message oriented Middleware)은 메시징에 크게 의존하는 개념입니다. 엔터프라이즈 서비스 버스 기반은 메시징을 기반으로합니다. 이러한 모든 새로운 기술은 안정성이있는 비동기 데이터 전달을 위해 메시징에 의존합니다.
"MSMQ"에 대한 Google 검색의 상위 링크가 도움이 될 것입니다.
http://msdn.microsoft.com/en-us/library/ms711472(VS.85).aspx
http://www.microsoft.com/windowsserver2003/techinfo/overview/msmqfaq.mspx
http://en.wikipedia.org/wiki/Microsoft_Message_Queuing
자세한 정보 : http://www.google.com/search?q=MSMQ
MSMQ- Microsoft Message Queuing : • MSMQ는 Microsoft에서 개발 한 메시지 대기열 구현입니다. • Windows Server 운영 체제에 배포되었습니다. • 별도의 서버 / 프로세스에서 실행되는 응용 프로그램이 안전한 방식으로 통신 할 수 있도록하는 메시징 프로토콜입니다. • MSMQ는 일반적으로 기업에서 소프트웨어 구축을 위해 사용되었습니다. • MSMQ는 의도 한 대상에 도달하지 못한 메시지를 대기열에 넣은 다음 대상에 도달 할 수있게되면 다시 전송하여 안정적인 배달을 보장합니다. • MSMQ는 트랜잭션도 지원합니다. 모든 작업을 단일 트랜잭션으로 래핑하여 여러 큐에서 여러 작업을 허용하므로 모든 작업이 적용되거나 적용되지 않습니다. • MSMQ (Message Queuing) 기술을 사용하면 서로 다른 시간에 실행되는 응용 프로그램이 일시적으로 오프라인 상태 일 수있는 이기종 네트워크 및 시스템간에 통신 할 수 있습니다. 다음 포트는 Microsoft 메시지 큐 작업에 사용됩니다. • TCP : 1801 • RPC : 135, 2101 *, 2103 *, 2105 * • UDP : 3527, 1801
MSMQ는 Microsoft Messaging Queue를 나타냅니다.
메시지를 형식화 된 방식으로 저장하여 DB로 전달할 수있는 대기열입니다 (동일한 컴퓨터 또는 서버에있을 수 있음). 메시지를 분류하는 여러 유형의 대기열이 있습니다. 메시지 내부에 문제 / 오류가 있거나 잘못된 메시지가 전달되면 자동으로 Dead queue로 이동하여 더 이상 처리되지 않음을 나타냅니다. 그러나 메시지를 데드 큐로 전달하기 전에 최대 카운트를 재 시도하고 처리되지 않을 때까지 데드 큐로 보낼 수 있습니다. 일반적으로 클라이언트 컴퓨터에서 서버 또는 DB로 로그 메시지를 보내는 데 사용되므로 클라이언트 컴퓨터에서 문제가 발생하면 개발자 또는 지원 팀이 로그를 통해 문제를 해결할 수 있습니다. MSMQ는 Microsoft에서 제공하는 서비스로 로그 파일의 기록을 가져오고 로그 파일을 사용하여 솔루션을 쉽게 얻을 수 있습니다. 이 블로그에서 더 나은 아이디어를 얻을 수 있습니다.http://msdn.microsoft.com/en-us/library/ms711472(v=vs.85).aspx
ReferenceURL : https://stackoverflow.com/questions/400115/what-is-microsoft-message-queuing-msmq-how-does-it-work
'programing' 카테고리의 다른 글
순서가 지정된 목록의 숫자를 굵게 표시하는 방법이 있습니까? (0) | 2021.01.17 |
---|---|
C # HashSet에 해당하는 JavaScript는 무엇입니까? (0) | 2021.01.17 |
div에서 innerHTML 제거 (0) | 2021.01.17 |
목록 이외의 시퀀스에 대한 스칼라 패턴 일치 (0) | 2021.01.17 |
사전 컴파일 된 자산이 개발 모드에서 제공되는 것을 방지하는 방법은 무엇입니까? (0) | 2021.01.17 |