Apache camel 骆驼负载平衡器断路器未按预期工作

Apache camel 骆驼负载平衡器断路器未按预期工作,apache-camel,Apache Camel,我们正试图在我们的产品中实现断路器模式。 我尝试实现它,并观察到,如果我将阈值设为“0”,它工作正常。但任何值>0,它只需等待2秒,并允许请求与外部rest服务通信 我尝试了下面这个简单的例子,计时器组件每1秒触发一次消息,在我的处理器中,我编写了逻辑,好像它会抛出MyCustomException 3次,然后断路器将进入断开状态,它应该等待10秒,正如我在camel文档中读到的。但它只是将请求阻塞2秒,然后允许处理请求 import org.apache.camel.CamelContext;

我们正试图在我们的产品中实现断路器模式。 我尝试实现它,并观察到,如果我将阈值设为“0”,它工作正常。但任何值>0,它只需等待2秒,并允许请求与外部rest服务通信

我尝试了下面这个简单的例子,计时器组件每1秒触发一次消息,在我的处理器中,我编写了逻辑,好像它会抛出MyCustomException 3次,然后断路器将进入断开状态,它应该等待10秒,正如我在camel文档中读到的。但它只是将请求阻塞2秒,然后允许处理请求

import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;

public class CamelHttp {

    public static void main(String[] args) throws Exception {
        CamelContext context = new DefaultCamelContext();
        context.addRoutes(new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from("timer://simpleTimer?period=1000")
                    .setBody(simple("Hello from timer at ${header.firedTime}"))
                    .loadBalance()
                    .circuitBreaker(2, 10000, MyCustomException.class)                       
                    .process(new MyProcessor())
                    .to("mock:result");
            }
        });         
        context.start();
        Thread.sleep(20000);
        context.stop();
    }
}
我只是被困在这一点上

非常感谢您的任何帮助或建议


提前感谢。

当我将camel-core版本从2.15.0更新到2.16.0时,问题得到了解决


现在,它正在按预期工作。

您能否至少花一些时间格式化您的代码示例,使其可读,以供可能希望帮助您的人使用。如果你自己没有表现出任何努力,那么其他人甚至可能都不会来帮助你。嗨,克劳斯,谢谢你的反馈,对给你带来的不便表示歉意。我编辑了代码并保存了下来。同行评论员:这是一个答案——这就是为OP解决这个问题的原因。