【问题标题】:Mulitple routes in apache camel - best practiceapache骆驼中的多条路线 - 最佳实践
【发布时间】:2018-09-16 17:39:27
【问题描述】:

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

现在的方法,调用数据库获取所有配置的其余详细信息,并在 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 循环。

【问题讨论】:

    标签: apache-camel


    【解决方案1】:

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

    如果您在 RouteBuilder 中定义了 1000 条或 10,000 条或 1,000,000 条路线 - 这会起作用吗?我不知道。

    骆驼路线旨在对数据流进行建模,而不是代表数据本身。数据应该流经路由。

    我会改造您的解决方案并通过seda: 端点创建一个内存队列,并将x 项数据(很容易成为java.lang.Integer)放到seda:myqueue

    然后有第二条路由从seda:myqueue异步消费,并根据您选择的时间处理数据。

    【讨论】:

    • 我之前有30个,现在增加到75个。所以我可以用这种方法直到 500 ? .最大我可以得到处理请求表业务是 500 而已
    • 正如我所说,路由并不代表数据,您可以尝试 500(它可能会工作)但我觉得还有其他更好的方法来建模问题,例如异步队列(@ 987654325@).
    猜你喜欢
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 2020-05-13
    • 2014-02-12
    相关资源
    最近更新 更多