ActiveMQ에 우선 순위 큐를 구현했습니다. 대기열에 높은 우선 순위 메시지가 계속해서 넘치면 우선 순위가 낮은 메시지는 절대로 처리되지 않습니다. ActiveMQ는 이러한 상황을 어떻게 처리합니까? 또는이 상황을 어떻게 피하거나 처리 할 수 있습니까?ActiveMQ는 우선 순위가 낮은 메시지의 고갈을 어떻게 방지합니까?
2
A
답변
4
ActiveMQ는 응용 프로그램의 요구 사항에 따라 문제를 해결할 때까지이 문제를 방지하기 위해 아무 것도 시도하지 않습니다. 이러한 상황이 발생하면 우선 순위별로 대기열을 사용하여 대기열에서 부하 분산을 허용하는 것이 좋습니다.
1
Tim Bish의 대답을 확장하면 ActiveMQ에서 이러한 상황을 처리하는 데 사용할 수있는 몇 가지 기능이 있습니다.
virtualDestinationInterceptor 태그 내부에서 이와 같이 높음 및 낮음 프리오 메시지를 걸러 내기 위해 가상 대상을 설정할 수 있습니다.
<virtualDestinations>
<compositeQueue name="ALL">
<forwardTo>
<filteredDestination selector="JMSPriority < 5" queue="LOW.PRIO"/>
<filteredDestination selector="JMSPriority > 4" queue="HIGH.PRIO"/>
</forwardTo>
</compositeQueue>
</virtualDestinations>
그러면 대체 전략으로 here을 사용할 수 있습니다. 하나의 소비자를 LOW.PRIO 대기열에 넣고 HIGH.PRIO 대기열에있는 여러 소비자를 배치합니다. 그런 다음 LOW.PRIO 메시지는 처리되지만 높은 우선 순위 메시지보다 적은 스레드로 처리됩니다.
소비자 응용 프로그램의 선택기를 사용하여 "ALL"대기열에서 직접 메시지를 읽을 수도 있습니다.
관련 문제
- 1. 우선 순위가 낮은 프로세스는 어떻게 시작합니까? C#
- 2. OpenCV에서 우선 순위가 낮은 작업
- 3. 우선 순위가 낮은 qsub 작업?
- 4. 우선 순위가 낮은 작업을 VxWorks에서 실행하는 방법
- 5. 우선 순위가 가장 낮은 커널 스레드
- 6. 우선 순위가 낮은 Express.js app.get ('/ route');
- 7. 기본 스레드에서 우선 순위가 낮은 작업 예약
- 8. 우선 순위가 낮은 스레드가 차단됩니다. Win CE
- 9. SSIS 우선 순위가 낮은 프로세스 작업 실행
- 10. 우선 순위가 낮은 Android 서비스 만들기
- 11. .net의 우선 순위가 높은/낮은 우선 순위 스레드 관리
- 12. 창 메시지의 우선 순위 결정
- 13. 각도 명령. 우선 순위가 낮은 지시문을 취소 할 수 있습니까?
- 14. 우선 순위가 낮은 프로세스를 시작하십시오. try-catch없이 가능합니까?
- 15. OR보다 우선 순위가 높습니까?
- 16. CPU로드가 높지 만 우선 순위가 낮은 프로세스가 유휴 상태가 아닙니다.
- 17. 현재 스레드의 I/O 우선 순위가 낮은 지 확인하십시오.
- 18. 스마트보기 - 우선 순위가 낮은 출력의 표시/숨기기 버튼, 프로그램 출력
- 19. 우선 순위가 낮은 별도의 스레드로 Subversion 커밋 후크를 실행하는 방법
- 20. 우선 순위가 낮은 프로세스 시작 (Runtime.exec/ProcessBuilder.start 사용)
- 21. 우선 순위가 낮은 Powershell 시작 작업을 설정할 수 있습니까?
- 22. 우선 순위가 낮은 백그라운드 스레드를 구현하기위한 패턴은 무엇입니까?
- 23. 우선 순위가 낮은 스레드/프로세스에서 Oracle 인덱스를 만들 수 있습니까?
- 24. 우선 순위가 높은 우선 순위 큐 (파이썬에서 우선)
- 25. 조건 우선 순위가
- 26. 우선 순위가 다른 Postgresql
- 27. 작업 병렬 라이브러리의 우선 순위가 지정된 대기열
- 28. Ruby 정규 표현식의 우선 순위가?
- 29. Solr : 필드의 우선 순위가 높음
- 30. 우선 순위가 우연히 일치하는 정규식