阿帕奇骆驼的多路线-最佳做法

时间:2018-09-16 17:39:28

标签: apache-camel

我已经实现了一个Apache骆驼调度程序,该程序以固定的时间间隔执行任务。现在要执行的任务数量增加了,我很困惑继续使用相同的方法或创建多个路由构建器。

现在的方法是,调用DB获取所有已配置的其余详细信息,并在routerbuilder的confuguire方法中进行迭代并构建路由。

代码示例:

public void configure() {
    for(int i=0; i< list.length;i++){
        from("quartz://myTimer?trigger.repeatInterval=2000&trigger.repeatCount=-1")
            .setBody().simple("Current time is ${header.firedTime}")
            .to("stream:out");  
    }
}

这里我只有一个routebuilder类,configure方法具有用于创建多个路由的for循环。

1 个答案:

答案 0 :(得分:3)

这似乎是一种无法很好扩展的方法。如果您有10或100个“列表”项目,那就太好了。

如果您在RouteBuilder中定义了1000或10,000或1,000,000条路由,那行得通吗?我不知道。

骆驼路线是为了对数据流进行建模,而不是代表数据本身。数据应流经路线。

我将对您的解决方案进行建模,并通过seda:端点在内存中创建一个队列,然后将x项数据(很可能是java.lang.Integer)放到seda:myqueue上。 / p>

然后有第二条路由,该路由从seda:myqueue异步消耗数据,并按照您选择的任何时间处理数据。