I'm using SMX 3.3.1 and Camel 1.6.1. I have the following Camel route which
simply takes inbound HTTP posts and sends them to an AMQ queue. I was
getting pretty good throughput (400+/sec) until I added the 3rd line to
process the inbound data (seemed necessary to populate the AMQ message body
correctly...not sure why though). Now my throughput is cut to ~150/second.
Any ideas why that would be? I can't imagine the overhead of the processor
is that much...but apparently this setup is causing some issues.
from("jetty:http://www.test.com")
.inOnly() //is this necessary?
.process(new HTTPInboundService()) //slows things down considerable
.to("activemq:GatewayMsgQueue");
class HTTPInboundService implements Processor {
public void process(Exchange exchange) throws Exception {
try {
exchange.getOut().setBody(exchange.getIn().getBody(String.class));
} catch (Exception e) {
logger.error("HTTPInboundService.error->" +
e.getMessage());
throw e;
}
}
}
Along these lines, is there a better way to get high volume (400+ msg/sec)
HTTP data into an AMQ queue (for downstream processing)? I tried adding a
seda queue in between the two...but the seda queue just filled up and
errored out after a few minutes. Its like AMQ can't keep up with the
traffic...does this sound right?
from("jetty:http://www.test.com")
.inOnly()
.to("seda:inbound?size=20000");
from("seda:inbound?size=20000")
.thread(100)
.process(new HTTPInboundService())
.to("activemq:GatewayMsgQueue");
thanks
-----
Ben O'Day
Vektrel - Senior Consultant
--
View this message in context:
http://www.nabble.com/Camel-throughput-issues...HTTP-to-AMQ-tp24648117p24648117.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.