Apache camel 如何将两条单独的驼峰路线链接在一起进行节流

Apache camel 如何将两条单独的驼峰路线链接在一起进行节流,apache-camel,Apache Camel,我在一个应用程序中运行两条不同的路径,我希望控制整个路径上飞行中的总工作量 Route 1: Gzipped file on SFTP --> unzip --> local directory Route 2: local directory --> process stuff --> Kafka 如果路线2有问题或工作落后,我不希望路线1填满本地目录。如何限制本地目录中等待处理的文件总数 (如果是单一路由,我可能可以更轻松地节流(),但是否有其他选项可以查看多个

我在一个应用程序中运行两条不同的路径,我希望控制整个路径上飞行中的总工作量

Route 1:  Gzipped file on SFTP --> unzip --> local directory
Route 2:  local directory --> process stuff --> Kafka
如果路线2有问题或工作落后,我不希望路线1填满本地目录。如何限制本地目录中等待处理的文件总数


(如果是单一路由,我可能可以更轻松地
节流()
,但是否有其他选项可以查看多个路由的总体情况?

您可以实现自定义
路由策略,其中检查该目录中的文件数,如果大于X,则暂停路由,如果低于X,则再次恢复

有关更多详细信息,请参阅驼峰文档:


您可以查看现有的
限制FlightRoutePolicy
如何实现,以获得灵感。

谢谢!
throttlingFlightRoutePolicy
代码非常有用,尤其是将RoutePolicySupport扩展为基类。我没有检查文件系统中的文件计数,而是检查了InFlightRepository,以了解路由2上有多少正在进行中。不管怎样,这都会带来很多可能性。另外,很高兴在上个月的明尼阿波利斯之旅中见到你!啊,很高兴听到你找到了一个很好的解决办法。我在明尼阿波利斯度过了一段美好的时光,对我来说,走过密西西比河是一个里程碑。我不知道它是从美国这么远的地方开始的。也没想到会在城市里看到这么多天桥,令人惊讶的是有一个13英里长的迷宫连接着所有的建筑。传播关于阿帕奇骆驼的消息总是一件愉快的事。