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 |
---|