You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Debraj Manna <su...@gmail.com> on 2016/03/11 08:10:37 UTC

Http Connection Pooling in Camel

Hi,

I am using Camel as an Orchestration Engine.

clients sends HTTP request <-> CAMEL code <---- HTTP Req----- > external
server(s)

I am using HTTP4 Component (with default settings) for making HTTP Requests
to external server. I have quite a few http backends.

Right now the way we are making http calls to our backend is as follow:-

// The producer is created during app initialisation. This is actually done
via blueprint.xml
ProducerTemplate producer = camelContext.createProducerTemplate();

// Whenever I need to make a http call I am executing the below code with
URL set as something like:- "http4://order-api:8099/orders/v1/ordersearch/"

Exchange exchange = producer.request(URL, new Processor() {
        @Override
        public void process(Exchange exchange) throws Exception {
        log.info("Executing the HTTP request : URL - " + URL + " Headers -
" + headers + " Body : " + body);
        exchange.getIn().setHeaders(headers);
        exchange.getIn().setBody(body);
        }
    });

The query I am having is:-


   1. Does HTTP4 in the default setting camel uses some http connection
   pooling while making a call to the external servers?
   2. If yes Is there a way I can configure the connection pooling from
   blueprint.xml?

I am using Camel 2.16.1 and the application is deployed in Karaf 3.0.5.

Re: Http Connection Pooling in Camel

Posted by Willem Jiang <wi...@gmail.com>.
If you don’t setup the ConnectionManager on the Http4Component, Camel just create a new Connection which is based on the setting of maxTotalConnections and connectionsPerRoute.

--  
Willem Jiang


Blog: http://willemjiang.blogspot.com (English)  
http://jnn.iteye.com (Chinese)
Twitter: willemjiang  
Weibo: 姜宁willem



On March 13, 2016 at 1:02:36 AM, Quinn Stevenson (quinn@pronoia-solutions.com) wrote:
> I haven’t used this component very much, but the documentation (http://camel.apache.org/http4.html  
> ) seems to hint at some sort of persistent connections  
> (i.e. maxTotalConnections, connectionsPerRoute, etc).
>  
> > On Mar 11, 2016, at 12:10 AM, Debraj Manna wrote:
> >
> > Hi,
> >
> > I am using Camel as an Orchestration Engine.
> >
> > clients sends HTTP request <-> CAMEL code <---- HTTP Req----- > external
> > server(s)
> >
> > I am using HTTP4 Component (with default settings) for making HTTP Requests
> > to external server. I have quite a few http backends.
> >
> > Right now the way we are making http calls to our backend is as follow:-
> >
> > // The producer is created during app initialisation. This is actually done
> > via blueprint.xml
> > ProducerTemplate producer = camelContext.createProducerTemplate();
> >
> > // Whenever I need to make a http call I am executing the below code with
> > URL set as something like:- "http4://order-api:8099/orders/v1/ordersearch/"  
> >
> > Exchange exchange = producer.request(URL, new Processor() {
> > @Override
> > public void process(Exchange exchange) throws Exception {
> > log.info("Executing the HTTP request : URL - " + URL + " Headers -
> > " + headers + " Body : " + body);
> > exchange.getIn().setHeaders(headers);
> > exchange.getIn().setBody(body);
> > }
> > });
> >
> > The query I am having is:-
> >
> >
> > 1. Does HTTP4 in the default setting camel uses some http connection
> > pooling while making a call to the external servers?
> > 2. If yes Is there a way I can configure the connection pooling from
> > blueprint.xml?
> >
> > I am using Camel 2.16.1 and the application is deployed in Karaf 3.0.5.
>  
>  


Re: Http Connection Pooling in Camel

Posted by Quinn Stevenson <qu...@pronoia-solutions.com>.
I haven’t used this component very much, but the documentation (http://camel.apache.org/http4.html <http://camel.apache.org/http4.html>) seems to hint at some sort of persistent connections (i.e. maxTotalConnections, connectionsPerRoute, etc).

> On Mar 11, 2016, at 12:10 AM, Debraj Manna <su...@gmail.com> wrote:
> 
> Hi,
> 
> I am using Camel as an Orchestration Engine.
> 
> clients sends HTTP request <-> CAMEL code <---- HTTP Req----- > external
> server(s)
> 
> I am using HTTP4 Component (with default settings) for making HTTP Requests
> to external server. I have quite a few http backends.
> 
> Right now the way we are making http calls to our backend is as follow:-
> 
> // The producer is created during app initialisation. This is actually done
> via blueprint.xml
> ProducerTemplate producer = camelContext.createProducerTemplate();
> 
> // Whenever I need to make a http call I am executing the below code with
> URL set as something like:- "http4://order-api:8099/orders/v1/ordersearch/"
> 
> Exchange exchange = producer.request(URL, new Processor() {
>        @Override
>        public void process(Exchange exchange) throws Exception {
>        log.info("Executing the HTTP request : URL - " + URL + " Headers -
> " + headers + " Body : " + body);
>        exchange.getIn().setHeaders(headers);
>        exchange.getIn().setBody(body);
>        }
>    });
> 
> The query I am having is:-
> 
> 
>   1. Does HTTP4 in the default setting camel uses some http connection
>   pooling while making a call to the external servers?
>   2. If yes Is there a way I can configure the connection pooling from
>   blueprint.xml?
> 
> I am using Camel 2.16.1 and the application is deployed in Karaf 3.0.5.