应用程序信息:
下面的代码:从IBM队列读取,然后将消息发布到REST服务
从MQ队列读取(note:是一个快速的问题,并且不是的问题-而是post操作性能我在改进中遇到了问题).
问题:
每秒无法输出或发送超过44-47条消息.
问题:
如何提高以下JbossFuse (v6.3) DSL路由代码的性能?(有哪些技术可以使它更快?)
package aaa.bbb.ccc;
import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.cdi.ContextName;
@ContextName("rest-dsl")
public class Netty4HttpSlowRoutes extends RouteBuilder {
public Netty4HttpSlowRoutes() {
}
private final org.apache.camel.Processor proc1 = new Processor1();
@Override
public void configure() throws Exception {
org.apache.log4j.MDC.put("app.name", "netty4HttpSlow");
System.getProperties().list(System.out);
errorHandler(defaultErrorHandler().maximumRedeliveries(3).log("***FAILED_MESSAGE***"));
from("wmq:queue:mylocalqueue")
.log("inMessage=" + (null==body()?"":body().toString()))
.to("seda:node1?concurrentConsumers=20");
from("seda:node1")
.streamCaching()
.threads(20)
.setHeader(Exchange.HTTP_METHOD, constant(org.apache.camel.component.http4.HttpMethods.POST))
.setHeader(Exchange.CONTENT_TYPE, constant("application/json"))
.toD("netty4-http:http://localhost:7001/MyService/myServiceThing?textline\\=true");
}
}发布于 2017-11-17 10:05:26
只是几个想法。第一件事是:你测量了慢度吗?您在Camel上花费了多少时间,而发送HTTP请求花费了多少时间?
如果休息时间很慢,你在骆驼里什么也做不了。根据服务的功能,您可以尝试减少线程的数量。
尝试禁用streamCaching,因为它看起来像是您没有使用它。
然后使用to而不是toD来调用服务,我看到URL始终是相同的。在ToD博士中我读到
默认情况下,使用简单语言计算端点。
每次调用路由时,解析URI字符串时可能会有一些开销。
https://stackoverflow.com/questions/47334322
复制相似问题