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
Advertencia
Microsoft recomienda usar el flujo de autenticación más seguro disponible. El flujo de autenticación que se describe en este procedimiento requiere un alto grado de confianza en la aplicación y conlleva riesgos que no están presentes en otros flujos. Solo debe usar este flujo cuando otros flujos más seguros, como las identidades administradas, no sean viables.
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.
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Inicio rápido para Bash en Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
Clonación o descarga de la aplicación de ejemplo
Clone el repositorio de ejemplo:
git clone https://github.com/Azure-Samples/serviceconnector-springcloud-confluent-springboot/
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
Inicie sesión en Confluent Cloud mediante el inicio de sesión único proporcionado por Azure.
Uso del entorno predeterminado o creación de uno nuevo
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.
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.
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.
Creación de un tema denominado
test
con particiones 6 en Temas ->+ Agregar temaEn 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.
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
Inicie sesión en Azure y elija su suscripción.
az login az account set --subscription <Name or ID of your subscription>
Compilación del proyecto mediante Gradle.
./gradlew build
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 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 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 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.
Pasos siguientes
Para más información sobre Service Connector, siga los tutoriales que se enumeran a continuación.