Tutorial: Implementación de una Spring Boot conectada a Apache Kafka en Confluent Cloud con el conector de servicio en Azure Spring Apps

Obtenga información sobre cómo acceder a Apache Kafka en Confluent Cloud para una aplicación Spring Boot que se ejecuta en Azure Spring Apps. En este tutorial, va a completar las siguientes tareas:

  • Creación de Apache Kafka en Confluent Cloud
  • Creación de una aplicación Spring Cloud
  • Compilación e implementación de la aplicación Spring Boot
  • Conexión de Apache Kafka en Confluent Cloud para Azure Spring Apps mediante el conector de servicio

Requisitos previos

  • Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.

  • Java 8 o una versión más reciente con compatibilidad a largo plazo (LTS) 1.

Clonación o descarga de la aplicación de ejemplo

  1. Clone el repositorio de ejemplo:

    git clone https://github.com/Azure-Samples/serviceconnector-springcloud-confluent-springboot/
    
  2. Vaya a la siguiente carpeta:

    cd serviceconnector-springcloud-confluent-springboot
    

Preparación de Cloud Services

Creación de una instancia de Apache Kafka para Confluent Cloud

Siga esta guía para crear una instancia de Apache Kafka para Confluent Cloud.

Creación de un clúster de Kafka y un registro de esquema en Confluent Cloud

  1. Inicie sesión en Confluent Cloud mediante el inicio de sesión único proporcionado por Azure.

    The link of Confluent cloud SSO login using Azure portal

  2. Uso del entorno predeterminado o creación de uno nuevo

    Cloud environment of Apache Kafka on Confluent Cloud

  3. Cree un clúster de Kafka con la siguiente información:

    • Tipo de clúster: Estándar
    • Región/zonas: eastus(Virginia), una sola zona
    • Nombre del clúster: cluster_1 o cualquier otro nombre.
  4. En información general del clúster :>configuración del clúster, tenga en cuenta la dirección URL del servidor de arranque de Kafka.

    Cluster settings of Apache Kafka on Confluent Cloud

  5. Cree claves de API para el clúster en Integración de datos ->Claves de API ->+ Agregar clave con acceso global. Anote la clave y el secreto.

  6. Creación de un tema denominado test con particiones 6 en Temas ->+ Agregar tema

  7. En el entorno predeterminado, seleccione la pestaña Registro de esquemas. Habilite el Registro de esquemas y anote el punto de conexión de la API.

  8. Cree claves de API para el registro de esquema. Guarde la clave y el secreto.

Creación de una instancia de Azure Spring Apps

Cree una instancia de Azure Spring Apps mediante el inicio rápido de Azure Spring Apps en Java. Asegúrese de que la instancia de Azure Spring Apps se crea en una región que tiene compatibilidad con el conector de servicio.

Compilación e implementación de la aplicación

Compilación de la aplicación de ejemplo y creación de una nueva aplicación Spring

  1. Inicie sesión en Azure y elija su suscripción.

    az login
    
    az account set --subscription <Name or ID of your subscription>
    
  2. Compilación del proyecto mediante Gradle.

    ./gradlew build
    
  3. Cree la aplicación con un punto de conexión público asignado. Si seleccionó la versión 11 de Java al generar el proyecto de Spring Cloud, incluya el modificador --runtime-version=Java_11.

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

Creación de una conexión de servicio mediante Service Connector

Ejecute el siguiente comando para conectar la instancia de Apache Kafka en Confluent Cloud a la aplicación Spring Cloud.

az spring-cloud 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>

Reemplace los siguientes textos de marcador de posición por sus datos propios:

  • Reemplace <your-resource-group-name> por el nombre del grupo de recursos que creó para la instancia de Azure Spring Apps.
  • Reemplace <kafka-bootstrap-server-url> por la dirección URL del servidor de arranque de Kafka. Por ejemplo: pkc-xxxx.eastus.azure.confluent.cloud:9092.
  • Reemplace <cluster-api-key> y <cluster-api-secret> por el secreto y la clave de API del clúster.
  • Reemplace <kafka-schema-registry-endpoint> por el punto de conexión del registro de esquema de Kafka. Por ejemplo: https://psrc-xxxx.westus2.azure.confluent.cloud.
  • Reemplace <registry-api-key> y <registry-api-secret> por el secreto y la clave de API del Registro de esquema de Kafka.

Nota

Si ve el mensaje de error "La suscripción no está registrada para usar Microsoft.ServiceLinker", ejecute az provider register -n Microsoft.ServiceLinker para registrar el proveedor de recursos del conector de servicio y vuelva a ejecutar el comando de conexión.

Implementación del archivo JAR

Ejecute el siguiente comando para cargar el archivo .JAR (build/libs/java-springboot-0.0.1-SNAPSHOT.jar) en la aplicación Spring Cloud.

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

Validación de la ingesta de datos de Kafka

Vaya al punto de conexión de su aplicación de Spring Cloud desde el Azure Portal y seleccione la URL de la aplicación. Verá "Se han producido 10 mensajes para la prueba de temas".

A continuación, vaya al portal de Confluent y la página del tema mostrará el rendimiento de producción.

Sample metrics

Pasos siguientes

Para más información sobre Service Connector, siga los tutoriales que se enumeran a continuación.