다음을 통해 공유


자습서: Azure Spring Apps의 서비스 커넥터를 사용하여 Confluent Cloud의 Apache Kafka에 연결된 Spring Boot 앱 배포

Azure Spring Apps에서 실행되는 Spring Boot 애플리케이션에 대해 Confluent Cloud에서 Apache Kafka에 액세스하는 방법에 대해 알아봅니다. 이 자습서에서는 다음 작업을 완료합니다.

  • Confluent Cloud에서 Apache Kafka 만들기
  • Spring Cloud 애플리케이션 만들기
  • Spring Boot 앱 빌드 및 배포
  • 서비스 커넥터를 사용하여 Confluent Cloud의 Apache Kafka를 Azure Spring Apps에 연결

Warning

사용 가능한 가장 안전한 인증 흐름을 사용하는 것이 권장됩니다. 이 절차에서 설명된 인증 흐름은 다른 흐름에는 없는 위험을 전달하며, 애플리케이션에서 매우 높은 신뢰 수준을 요구합니다. 이 흐름은 관리 ID와 같은 보다 안전한 다른 흐름을 실행할 수 없는 경우에만 사용되어야 합니다.

필수 조건

  • 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.

  • LTS(장기 지원) 1이 적용되는 Java 8 이상 최신 버전입니다.

샘플 앱 복제 또는 다운로드

  1. 샘플 리포지토리를 복제합니다.

    git clone https://github.com/Azure-Samples/serviceconnector-springcloud-confluent-springboot/
    
  2. 다음 폴더로 이동합니다.

    cd serviceconnector-springcloud-confluent-springboot
    

클라우드 서비스 준비

Confluent Cloud에 대한 Apache Kafka의 인스턴스 만들기

이 지침에 따라 Confluent Cloud에 대한 Apache Kafka의 인스턴스를 만듭니다.

Confluent Cloud에서 Kafka 클러스터 및 스키마 레지스트리 만들기

  1. Azure에서 제공하는 SSO를 사용하여 Confluent Cloud에 로그인

    Azure Portal을 사용하여 Confluent Cloud SSO 링크에 로그인

  2. 기본 환경을 사용하거나 새 환경 만들기

    Confluent Cloud에서 Apache Kafka의 클라우드 환경

  3. 다음 정보를 사용하여 Kafka 클러스터를 만듭니다.

    • 클러스터 형식: 표준
    • 지역/영역: eastus(버지니아), 단일 영역
    • 클러스터 이름: cluster_1 또는 다른 이름입니다.
  4. 클러스터 개요 ->클러스터 설정에서 Kafka Bootstrap 서버 URL을 기록해 둡니다.

    Confluent Cloud에서 Apache Kafka의 클러스터 설정

  5. 글로벌 액세스를 사용하여 데이터 통합 ->API 키 ->+ 키 추가에서 클러스터에 대한 API 키를 만듭니다. 키와 비밀을 적어둡니다.

  6. 항목>+ 항목 추가에서 파티션이 6인 토픽 test를 만듭니다.

  7. 기본 환경에서 스키마 레지스트리 탭을 선택합니다. 스키마 레지스트리를 사용하도록 설정하고 API 엔드포인트를 기록해 둡니다.

  8. 스키마 레지스트리에 대한 API 키를 만듭니다. 키와 비밀을 저장합니다.

Azure Spring Apps 인스턴스 만들기

Java에서 Azure Spring Apps 빠른 시작에 따라 Azure Spring Apps 인스턴스를 만듭니다. Azure Spring Apps 인스턴스가 서비스 커넥터를 지원하는 지역에서 생성되었는지 확인합니다.

앱 빌드 및 배포

샘플 앱 빌드 및 새 Spring 앱 만들기

  1. Azure에 로그인하고 구독을 선택합니다.

    az login
    
    az account set --subscription <Name or ID of your subscription>
    
  2. Gradle을 사용하여 프로젝트를 빌드합니다.

    ./gradlew build
    
  3. 퍼블릭 엔드포인트가 할당된 앱을 만듭니다. Spring Cloud 프로젝트를 생성할 때 Java 버전 11을 선택한 경우 --runtime-version=Java_11 스위치를 포함합니다.

    az spring app create -n hellospring -s <service-instance-name> -g <your-resource-group-name> --assign-endpoint true
    

서비스 커넥터를 사용하여 서비스 연결을 만듭니다.

다음 명령을 실행하여 Confluent Cloud의 Apache Kafka를 Spring Cloud 앱에 연결합니다.

az spring connection create confluent-cloud -g <your-spring-cloud-resource-group> --service <your-spring-cloud-service> --app <your-spring-cloud-app> --deployment <your-spring-cloud-deployment> --bootstrap-server <kafka-bootstrap-server-url> --kafka-key <cluster-api-key> --kafka-secret <cluster-api-secret> --schema-registry <kafka-schema-registry-endpoint> --schema-key <registry-api-key> --schema-secret <registry-api-secret>

다음 자리 표시자 텍스트를 사용자 고유의 데이터로 바꿉니다.

  • <your-resource-group-name>을 Apps Spring Apps 인스턴스에 대해 만든 리소스 그룹 이름으로 바꿉니다.
  • Kafka 부트스트랩 서버 URL로 <kafka-bootstrap-server-url>을 바꿉니다. 예: pkc-xxxx.eastus.azure.confluent.cloud:9092
  • 클러스터 API 키 및 암호로 <cluster-api-key><cluster-api-secret>을 바꿉니다.
  • Kafka 스키마 레지스트리 엔드포인트로 <kafka-schema-registry-endpoint>를 바꿉니다. 예: https://psrc-xxxx.westus2.azure.confluent.cloud
  • kafka Schema Registry API 키 및 비밀로 <registry-api-key><registry-api-secret>을 바꿉니다.

참고 항목

"구독이 Microsoft.ServiceLinker를 사용하도록 등록되어 있지 않습니다."라는 오류 메시지가 표시되면 az provider register -n Microsoft.ServiceLinker를 실행하여 Service Connector 리소스 공급자를 등록하고 연결 명령을 다시 실행합니다.

JAR 파일 배포

다음 명령을 실행하여 Spring Cloud 앱에 JAR 파일(build/libs/java-springboot-0.0.1-SNAPSHOT.jar)을 업로드합니다.

az spring app deploy -n hellospring -s <service-instance-name> -g <your-resource-group-name>  --artifact-path build/libs/java-springboot-0.0.1-SNAPSHOT.jar

Kafka 데이터 수집의 유효성 검사

Azure Portal에서 Spring Cloud 앱의 엔드포인트로 이동하고 애플리케이션 URL을 선택합니다. “10 개의 메시지가 항목 테스트에 생성되었습니다”가 표시됩니다.

그런 다음 Confluent Portal로 이동하면 항목의 페이지에 프로덕션 처리량이 표시됩니다.

샘플 메트릭

다음 단계

서비스 커넥터에 대해 자세히 알아보려면 아래 나열된 자습서를 따르세요.