데이터 연결 시 리소스 타입 http 에서 http/2 지원

안녕하세요

데이터 연결 중 리소스 타입 HTTP 로 GraphQL 서버에 연결 설정 중
아래와 같은 응답이 반환됩니다.

연결 테스트 실패.
Request failed with status code 464 {
  "status": 464,
  "statusText": "",
  "data": ""
}

제 ALB의 프로토콜이 HTTP/2 Only 이기 때문에 status 464가 반환되는 모습인데요
셀렉트의 HTTP 클라이언트에서 HTTP/2 요청을 지원해주셨으면 좋겠습니다.

감사합니다.

2개의 좋아요

@user5

안녕하세요. 문의주셔서 감사합니다.
셀렉트 김학범입니다.

아쉽게도 HTTP/2를 가까운 시일내 지원하기에는 어려울 것 같습니다. :sob:

혹시 HTTP/2를 이용하셔야하는 배경을 좀더 말씀해주실 수 있을까요?

말씀주시면 여러 다른 대안을 더 찾아보고 안내드리겠습니다.
감사합니다.

안녕하세요

현재 AWS에서 gRPC 로 서비스를 제공 중이고
해당 서비스의 ALB 프로토콜을 “HTTP/2 or gRPC” 타입으로 사용 중 입니다

해당 서버는 Armeria 를 이용해 gRPC, GraphQL 2개를 각각 서비스용, 어드민용 데이터를 서빙하고 있습니다.
물론 프로덕션에서는 해당 기능을 분리 빌드해 격리된 VPC에서 별도의 http/1 와 http/2 LB 로 서빙하게 되겠지만 개발 단계에서 빌드를 각각 하는것이 너무 비효율적으로 느껴집니다.

당장은 CloudFormation 에서 ECS 인스턴스를 등록하는 Target Group 을 http/1 그룹과 http/2 그룹 2곳으로 등록 하도록 설정해 http/1 요청을 별도로 인바운드 받을 수 있게 해결하였습니다.

결론은 해당 이슈를 해결하는 방법은 있지만 클라이언트에서 http/2 요청을 지원하지 않을 이유도 없다 생각해 건의드려 보았습니다.

감사합니다.

추가 말씀주셔서 감사합니다! 우선 다른 방향으로 해결하셨다니 다행입니다.

gRPC 로 서비스 제공중이셨군요.

현재 셀렉트가 axios 기반인데, 추후 fetch 지원하여 HTTP/2 요청도 지원할 수 있도록 노력하겠습니다.

다른 건의사항이 있거나 도움 필요하시면 편하게 말씀주세요.

감사합니다. :pray:

안녕하세요. @user5

곧 업데이트 공지 예정인데요. 8월에 got 클라이언트가 추가되었습니다.

menus:
- path: http-client-got
  name: http-client-got
pages:
- path: http-client-got
  blocks:
  - type: http
    got:
      url: https://nghttp2.org/httpbin/anything
      method: GET
      http2: true
    columns:
      headers:
        format: table

저희도 내부적으로 gRPC 또는 NATS 사용을 고려중인데
실제 적용하면서 문서를 더 채워두겠습니다.

감사합니다.

1개의 좋아요