MSMQ 대기열을 사용하여 요청을로드 밸런싱 할 수 있습니까? 클라이언트 1-n이 WCF 서비스에 요청을 보내면 각 요청을 대기열에 넣고 백그라운드에서 1-n 서버를 사용할 수있을 때마다 사용 가능한 다음 요청을 가져옵니다. 그러나 어떻게 응답을 되 찾을 수 있습니까? 내 WCF 서비스에서 'complete'이벤트를 구독 할 수 있다는 것을 알았지 만, 한 가지만 신경 쓰면 모든 이벤트를 구문 분석해야합니다. 어떻게이 아키텍처로 콜백 메커니즘을 수행 할 수 있습니까?msmq 큐를 사용하여 서비스의로드 밸런싱?
답변
MSMQ를 사용하여 이벤트를 보내는 경우에는 "응답을 다시받는"개념이 없습니다.
다음은 해결책입니다. 클라이언트는 각각 수신 대기중인 자체 메시지 대기열을 가질 수 있습니다. 작업자가 작업을 완료하면 클라이언트에게 "완료된"메시지를 보낼 수 있습니다.
그러나 서버는 클라이언트의 메시지 대기열 주소를 어떻게 알 수 있습니까?
한 가지 방법은 각 기능의 매개 변수로 클라이언트의 메시지 대기열 주소를 제공하는 것입니다.
더 나은 방법은이 주소를 사용자 지정 헤더 값으로 포함시키는 것입니다. 사용자 지정 헤더 솔루션은 두 가지 이유로 더 나은 방법입니다. 첫째, 클라이언트의 구성 파일을 통해 구성 할 수 있으므로 배포 후 큐 세부 정보가 변경 될 수 있습니다. 둘째, 의사 소통 "배관"의 세부 사항이 함수 호출 추상화 계층에 침입하는 것은 바람직하지 않습니다. 사용자 정의 헤더 솔루션을 사용하면이 문제를 피할 수 있습니다.
사용중인 사용자 지정 헤더의 예는 this question을 참조하십시오.
http://stackoverflow.com/questions/9631349/what-is-outbound-transaction-in-layman-terms에 답변 해 주시겠습니까? – Lijo
작업자가 응답을 별도의 응답 대기열에 넣게 할 수 있습니다. 그런 다음 각 요청 - 응답 쌍에 대해 고유 한 ID를 사용하여 올바른 응답을 식별하십시오.
- 1. MSMQ 서비스가 큐를 읽지 않습니다.
- 2. DLL에 MSMQ 큐를 만드는 중 예외가 발생했습니다.
- 3. 보안 웹 서비스의로드 테스트
- 4. WCF MSMQ 큐를 열 수 없음 : 액세스가 거부되었습니다.
- 5. MSMQ 큐를 설치할 때 WiX에서 잘 알려진 사용자를 지정하는 방법
- 6. NServiceBus F5로드 밸런싱 배포자를 사용하지 않는 구독자
- 7. MSMQ C# 서비스 (ServiceBase)를 사용하여 구현
- 8. ActiveMQ에서의로드 밸런싱
- 9. NServiceBus를 사용하여 MSMQ 액세스 오류 진단
- 10. MongoDB로드 밸런싱
- 11. 배열을 사용하여 큐를 구현하십시오. - Java
- 12. 순환 배열을 사용하여 큐를 구현했습니다.
- 13. C++의 MSMQ 샘플?
- 14. MSMQ 나가는 큐가 무기한 "연결됨"
- 15. Wix 및 MSMQ : MSMQ 검색
- 16. 개인 또는 공용 MSMQ
- 17. MSMQ 일반 메시징
- 18. 이벤트 알림 엔진 - MSMQ
- 19. 웹 사이트의 MSMQ WCF 수명주기
- 20. nginx를 사용하여로드 밸런싱
- 21. 로드 밸런싱 서버의 로그
- 22. MSMQ 모든 개인 큐 가져 오기
- 23. 제거 중에 MSMQ 큐 삭제
- 24. 가중치로 BST 밸런싱
- 25. Msmq 및 WCF 서비스
- 26. MSMQ QMThreadNo 및 CleanupInterval
- 27. 보내지 않은 메시지를 처리하려면 MSMQ 데드 - 레터 큐 또는 관리 큐를 사용하십시오.
- 28. MSMQ 문제 원격 개인 큐 읽기 (다시)
- 29. Erlang의 프로세스 밸런싱
- 30. SignalR 및로드 밸런싱
원시 MSMQ를 사용해야합니까? NServiceBus 또는 경쟁 ESB 중 하나를 들여다 보았습니까? – arootbeer