【问题标题】:Common file transfer route using Apache Camel使用 Apache Camel 的常见文件传输路由
【发布时间】:2016-05-05 17:40:28
【问题描述】:

我正在尝试使用 Apache Camel 组件创建通用路由来传输文件。

场景:

  • 多个服务器上存在多个源文件。
  • 需要将文件 ftp 到目标服务器。

我们有什么方法可以从端点读取源和目标配置并路由文件?

在这种情况下,如果我们需要添加更多的源和目标,我们只需要更改属性文件。据我所知,我们不能从 Apache Camel 的端点获得动态。

示例:

{server1-file1} - camel route(Generic) - {server2-file1}
{server1-file1} - camel route(Generic) - {server2-file1}
{server1-file1} - camel route(Generic) - {server2-file1}

【问题讨论】:

    标签: apache-camel


    【解决方案1】:

    为了解决这个特殊问题,您可以在 Java 中创建一个 Camel 路由,该路由允许您注入一个开始 URI 和一个结束 URI。这个想法被称为路由模板。这方面的一个例子是:

    public class FtpTemplateRoute extends RouteBuilder {
        private String startUri;
        private String endUri; 
    
        public FtpTemplateRoute(String startUri, String endUri) {
            this.startUri = startUri;
            this.endUri = endUri;
        }
    
        public void configure() {
            from(startUri)
               ...
               .to(endUri);
        }
    }
    

    然后在设置 CamelContext 时将其实例化 X 次:

    CamelContext context = new DefaultCamelContext();
    context.addRoutes(
        new FtpTemplateRoute("ftp:///dirA", "ftp:///dirB"));
    context.addRoutes(
        new FtpTemplateRoute("ftp:///dirC", "ftp:///dirD"));
    

    如何加载源和目标 uri 由您决定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-29
      • 1970-01-01
      • 2018-02-14
      • 2018-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多