2014-04-22 3 views
1

많은 작업자로 확장해야하는 웹 크롤링 시스템이 있다고 가정 해 보겠습니다. 각 작업자에게는 최대 예를 들어 한도가 있습니다. 크롤링 될 수있는 웹 호스트 당 분 당 5 개의 HTTP 요청.ActiveMQ 속도 제한 외부 서비스

"웹 호스트 당"은 메시지 헤더에있을 수 있으며 제작자가 채울 수 있습니다.

이 행사에서는 노드에 메시지를 보내도록 ActiveMQ를 가르 칠 수 있습니까?

답변

2

ActiveMQ는 사용자 제한을 지원하지 않고 생산자 제한 만 지원합니다. Camel 을 지원합니까? 여기에 수락 된 대답을 참조하십시오. ActiveMQ throttling consumer

+0

Camel Throttler는 매우 제한된 옵션이 있습니다. 나는 "크롤링 될 수있는 웹 호스트 당 기간"마다 제한해야합니다. Camel Throttler를 사용하면 시간에 따라 큐 처리량 만 제한 할 수 있습니다. 나는 또한 웹 호스트 또는 다른 메시지 헤더 값마다 그것을 할 필요가있다. –

+2

자신 만의 롤업과 같은 소리 :(ActiveMQ를 통해 처리 요청을 대기열에 넣고 대기열을 사용하여 사이트별로 정렬하고 작업자에게 발송할 수 있습니다.) 메시지의 일부는 사용 제한 시간대 일 수 있습니다. Java 타이밍 및 동기화 기본 요소를 사용하여 원하는 긁힌 속도를 얻을 수 있습니다. "가능한 한 빨리"실행할 수 있도록 설계되었습니다. :) 희귀 한 경우 반대 –