우선 순위 메시지 (예 : AMQP)를 일관되게 지원하지 않는 메시지 지향형 미들웨어의 경우 대기열에 FIFO 의미론 만있을 때 우선 순위 소비를 구현하는 가장 좋은 방법은 무엇입니까? ? 일반적인 사용 사례는 메시지의 큰 백 로그가 대기열에있을 때 우선 순위가 낮은 메시지보다 먼저 우선 순위가 높은 메시지를받는 시스템입니다.FIFO Qeueing 시스템에서 우선 순위 메시징을 구현하는 가장 좋은 방법은 무엇입니까
답변
주어진 단일 대기열에 대해서만 FIFO를 지원한다고 가정하면 물론 여러 대기열이나 중개자를 소개하거나 더 복잡한 소비자를 가져야합니다.
여러 큐를 처리하는 데는 두 가지 방법이 있습니다. 생산자와 소비자는 우선 순위가 높은 대기열과 백그라운드 작업을위한 대기열이라는 두 개의 대기열에 동의 할 수 있습니다.
생산자가 단일 대기열로 제한되었지만 소비자를 제어 할 수있는 경우 경로에 팬 아웃 라우터를 도입하는 것이 좋습니다. 따라서 producer-> Router는 하나의 큐이므로 라우터는 소비자에게 두 개의 큐를 가지고 있습니다.
문제를 해결할 수있는 또 다른 방법은 고객이 대기열 앞에있는 쓰레드를 회전시킨 다음 내부적으로 작업을 보내도록하는 것입니다. 위의 라우터 버전과 비슷하지만 하나의 앱 안에 있습니다. 이는 앱 내부에서 여러 메시지를 전달할 수있는 단점을 가지고 있으며, 이는 실패한 경우 복구를 복잡하게 만듭니다.
우선 순위가 높은 이벤트가 여전히 지연 되어도 일부 이벤트를 처리해야하는 경우, 우선 순위가 낮은 이벤트의 우선 순위를 고려해야합니다.
이것은 직장에서 프로젝트를 위해이 전략을 구현 한 사람과 어느 정도 일치합니다. 등급이 매겨진 우선 순위 시스템을위한 여러 대기열. 우리는 기아에 대해별로 걱정하지 않습니다. 왜냐하면 우선 순위가 낮은 중요 우선 순위가 낮은 중요한 메일을 다시 게시 할 수 있기 때문입니다. 과잉 작업은 대다수의 이유로 맹목적으로 처리됩니다. – quaternion
- 1. PHP 템플릿 시스템에서 조건부를 구현하는 가장 좋은 방법은 무엇입니까?
- 2. 우선 순위 연산자 우선 순위
- 3. 프로세스 우선 순위 대 스레드 우선 순위
- 4. C# 우선 순위 큐
- 5. 효율적인 우선 순위 목록
- 6. MySQL INSERT와 SELECT 우선 순위 우선 순위
- 7. 이중 종료 우선 순위 큐
- 8. 웹 기반 인스턴트 메시징을 구축하는 가장 좋은 방법은 무엇입니까?
- 9. 테스트를 위해 우선 문자열 우선 순위 지정 우선 순위 변경
- 10. MFC에서 FIFO listcontrol을 구현하는 방법은 무엇입니까?
- 11. 상수 개체를 구현하는 가장 좋은 방법은 무엇입니까?
- 12. 블로깅 시스템에서 권한을 구현하는 방법은 무엇입니까?
- 13. 우선 순위
- 14. 우선 순위 : 전자 메일의 머리글
- 15. Java 우선 순위 큐
- 16. 우선 순위 함수
- 17. 연산자 오버로드를 구현하는 가장 좋은 방법은 무엇입니까?
- 18. 데이터베이스 리비전을 구현하는 가장 좋은 방법은 무엇입니까?
- 19. .Net에서 이것을 구현하는 가장 좋은 방법은 무엇입니까?
- 20. CSS 스타일을 구현하는 가장 좋은 방법은 무엇입니까?
- 21. 레코드 잠금을 구현하는 가장 좋은 방법은 무엇입니까?
- 22. nhibernate : 평등을 구현하는 가장 좋은 방법은 무엇입니까?
- 23. Android에서 '스텁'을 구현하는 가장 좋은 방법은 무엇입니까?
- 24. 우선 순위 큐
- 25. WPF에서 우선 순위 우선 적용?
- 26. "jetsam 우선 순위"란 무엇입니까?
- 27. '실시간'프로세스 우선 순위 설정은 무엇입니까?
- 28. && JavaScript의 연산자 우선 순위
- 29. 우선 순위 값
- 30. 탑 우선 순위 대기열을위한 리소스는 무엇입니까?
대기열이 여러 개있을 수 있습니까? 그렇다면 우선 순위 대기열이 비어있는 경우에만 사용되는 표준 대기열보다 먼저 우선 순위가 높은 메시지에 대한 별도의 대기열을 제안하는 것이 좋습니다. 그게 당신의 시나리오에 맞는지는 모르겠지만 그것이 제 첫번째 생각이었습니다. – CodeFusionMobile
CSharpWithJava에 동의합니다. 나는 지금 큰 메시지 응용 프로그램을하고 있습니다. 당신의 질문에 여러 대기열이 필요하다고 생각합니다. 그래서 낮은 pri 메시지를 낮은 pri 대기열로 내리고, 즉시 높은 우선 순위를 읽을 수 있습니다. –