Home > OS >  SpringBoot SpringIntegration TomcatServlet How can I have more threads (than 1) for my incoming HTTP
SpringBoot SpringIntegration TomcatServlet How can I have more threads (than 1) for my incoming HTTP

Time:12-06

I've got a simple restful api in SpringIntegration 5.5.15, SpringBoot 2.7.6 and SpringFramework 5.3.24.

It's using a http:inbound-gateway to map the incoming requests to the channels in the workflow, making calls out via http:outbound-gateway to external restful APIs.

I get the impression that I'm not getting much parallelism in this API, that only a single API call at a time is being serviced (out of 200 simultaneous calls) and I'm not sure where the limitation lies. I've tried adding an executor to the channel referenced by the http:inbound-gateway via the request-channel but that doesn't seem to even work as it doesn't wait for the downstream response.

I must be missing something fundamental. Any pointers appreciated.

CodePudding user response:

Apparently you have a QueueChannel in your flow which you don't mention in this question. PollableChannels are consumed via scheduled tasks and default thread pool for an auto-configured TaskScheduler is really 1.

See this SO thread: Performance issue with upgrade of spring boot

and this doc: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#features.task-execution-and-scheduling

  • Related