Skip to content

Conversation

gianm
Copy link
Contributor

@gianm gianm commented Apr 15, 2025

fabric8 6.x uses the OkHttp client by default, which itself uses an unbounded-size cached pool, with 60s timeout, for making requests. In production with large task counts, this leads to lots of thread churn.

The Vert.x client is the default in fabric8 7.x, and is better behaved. By default it uses a worker pool of 20 threads (see javadoc for VertxOptions).

This patch uses fabric8 6.13.1 rather than some later version, because higher versions are not compatible with Jackson 2.12.

Btw: I initially tried using the Jetty http client, since fabric8 does support that now. However, I ran into linking problems because fabric8 is written against Jetty 12 and we use Jetty 9. Some classes it needed were missing. So I ended up going with Vert.x instead. The implementation in fabric8 is probably better tested, anyway, since Vert.x is the default now in fabric8 7.x.

fabric8 6.x uses the OkHttp client by default, which itself uses an
unbounded-size cached pool, with 60s timeout, for making requests.
In production with large task counts, this leads to lots of thread churn.

The Vert.x client is the default in fabric8 7.x, and is better behaved.
By default it uses a worker pool of 20 threads (see javadoc for VertxOptions).

This patch uses fabric8 6.13.1 rather than some later version, because
higher versions are not compatible with Jackson 2.12.
Copy link
Member

@clintropolis clintropolis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did some reading about the http client options too and agree that this change seems reasonable and that this should probably behave a bit nicer behavior in larger clusters.

@gianm gianm merged commit a8da381 into apache:master Apr 16, 2025
75 checks passed
@gianm gianm deleted the fabric8-upgrade-http-client-switch branch April 16, 2025 05:16
@capistrant capistrant added this to the 34.0.0 milestone Jul 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants