ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java-Apache Camel中拆分时的并行处理线程

2019-11-20 02:04:38  阅读:607  来源: 互联网

标签:apache-camel java


我试图根据某种逻辑在路由中拆分传入的交换.每个拆分部分都将连接到Bean中的ssh服务器.

from("seda:compression")
    .routeId("Compressor")
    .split(beanExpression(new InstanceListParser(), "process"))
    .parallelProcessing()
        .to("bean:compressorClient?method=compress(${header.remoteHost},${header.dataCenter})")
    .end();

但是似乎并行执行的最大处理量是10个部分.

我添加了以下代码来增加线程池工厂的大小,但没有帮助.

ThreadPoolProfile poolProfile = new ThreadPoolProfile("masterPoolProfile");
poolProfile.setMaxPoolSize(100);
poolProfile.setMaxQueueSize(100);
poolProfile.setPoolSize(50);
poolProfile.setKeepAliveTime(1L);
poolProfile.setTimeUnit(TimeUnit.MINUTES);

ThreadPoolFactory poolFactory = new DefaultThreadPoolFactory();
poolFactory.newThreadPool(poolProfile, Executors.defaultThreadFactory());

getContext().getExecutorServiceManager().setThreadPoolFactory(poolFactory);

解决方法:

您需要配置拆分器以将masterPoolProfile用作线程池,或将masterPoolProfile配置为默认配置文件.后者意味着在Camel中使用该API创建的所有线程池都将使用此配置文件作为基线.

在Camel文档中了解有关此内容的更多信息:http://camel.apache.org/threading-model.html

标签:apache-camel,java
来源: https://codeday.me/bug/20191120/2040646.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有