camel如何显示已经发生节流

How to show that throttling has occurred in camel

我想知道是否有办法执行 System.out.println(); 之类的操作或记录已发生的限制。目前我能看到是否发生限制的唯一方法是将 rejectExecution 设置为 True。问题在于,如果它设置为 true,则在发生限制时不会处理请求。有没有办法通知使用骆驼发生节流?

Camel 中的 Throttler EIP 是使用 class Throttler which extends from DelayProcessorSupport 实现的,它在跟踪级别记录有关其处理的消息,因此您可以将其日志记录配置为跟踪级别。 例如,如果您使用的是 log4j,那么您可以使用

log4j.logger.org.apache.camel.processor.DelayProcessorSupport=TRACE ,file

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:/output.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n