반응형

Camel에서 HTTP/2 클라이언트를 지원하는 라이브러리를 찾고 있었다.

 

camel-netty

- 프로젝트가 camel-netty 기반이라 가장 먼저 도전

- camel-netty에서는 자체적으로 http2를 지원하지 않음

- netty 예제에서 제공하는 http2 핸들러를 이용하여 이것저것 해보았으나, 실패

 

camel-jetty

 

camel-http

- httpclient 5.x 버전부터 지원하는 HTTP2를 사용하여 가능할 듯 함.

- 다만, 현재 프로젝트의 camel 3.x 버전이며, httpclient 5.x 버전은 camel 4.x 버전부터 지원

- camel 4.x 버전으로 상향하고 싶으나, 사용하고 있는 다른 camel 컴포넌트들이 4.x 부터 deprecated 되어 포기

 

camel-undertow

- camel-undertow에서 제공하는 UndertowHostOptions.http2Enabled이 존재. 다만 이건 서버 방식의 HTTP2만 지원

- 클라이언트 엔드포인트 url에 http2Enabled=true를 주어 테스트 해보려고 하였으나, 테스트 서버 인증서라, trust All을 해줘야 하지만, undertow에서는 따로 제공하는 옵션이 없음.

- 프로젝트 내의 인증서 모듈이 이미 존재하므로 해당 부분을 고쳐서 테스트하기가 어려워서 포기

 

camel-vertx-http

- netty 기반의 고수준 API vertx 

- camel-vertx-http에서는 자체적으로 http2를 지원하지는 않음

- vertx 옵션을 추가해서 해야하는데, 아주 쉽게 설정 가능

        WebClientOptions options = new WebClientOptions().setMaxRedirects(5)
            .setProtocolVersion(HttpVersion.HTTP_2)
            .setSsl(true)
            .setTrustAll(true)
            .setUseAlpn(true)
            .setVerifyHost(false);

        DataManager.getCamelContext().getRegistry().bind("options", options);

 

 

반응형

'Java > Camel' 카테고리의 다른 글

[Camel][Netty] NettyHttpComponent.bootstrapFactories  (0) 2024.07.01

+ Recent posts