Enseñarle cómo integrar Springboot con Kafka.

Este artículo es compartido por Huawei Cloud Community " Comenzando con Springboot + Kafka de la mano ", autor: QGS.

instalar kafka

Iniciar el entorno local de Kafka requiere Java 8+ o superior

Kafka es un sistema de mensajería de publicación y suscripción distribuido de alto rendimiento que puede procesar todos los datos de transmisión de acciones de los consumidores en el sitio web.

Los métodos de inicio de Kafka incluyen Zookeeper y Kraft. Solo puede elegir uno de los dos métodos de inicio y no puede usarlos al mismo tiempo.

Descarga de Kafka https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz

Descomprimir tar -xzf kafka_2.13-3.7.0.tgz

1. Zookeeper inicia Kafka (kafka tiene zookeeper incorporado)

Kafka confía en Zookeeper

1. Inicie Zookeeper 2. Inicie Kafka

Empieza a usar el propio Zookeeper de Kafka

./zookeeper-server-start.sh ../config/zookeeper.properties &

./zookeeper-server-stop.sh ../config/zookeeper.properties

./kafka-server-start.sh ../config/server.properties &

./kafka-server-stop.sh ../config/server.properties

2. El servidor Zookeeper inicia Kafka

Instalación del servidor Zookeeper

https://zookeeper.apache.org/

https://dlcdn.apache.org/zookeeper/zookeeper-3.9.2/apache-zookeeper-3.9.2-bin.tar.gz

tar zxvf apache-zookeeper-3.9.2-bin.tar.gz

Configurar el servidor Zookeeper

cp zoo_sample.cfg zoo.cfg

Inicie el servidor Zookeeper

./zkServer.sh inicio

Modificar el puerto de Zookeeper

Agregar contenido a Zoo.cfg

admin.serverPort=8099

Reinicie Zookeeper en el directorio apache-zookeeper-3.9.2-bin/bin

El servidor Zookeeper inicia Kafka

Directorio /opt/kafka_2.13-3.7.0/bin

./kafka-server-start.sh ../config/server.properties &

Archivo de configuración de Kafka server.properties

3. Utilice KRaft para iniciar Kafka

Identificador único universal UUID (Identificador único universal)

1. UUID del clúster generado: ./kafka-storage.sh uuid aleatorio

2. Formatee el directorio de registro de Kafka: ./kafka-storage.sh formato -t 3pMJGNJcT0uLIBsZhbucjQ -c ../config/kraft/server.properties

3. Inicie Kafka: ./kafka-server-start.sh ../config/kraft/server.properties &

Springboot integra Kafka

Al crear un tema, si no especifica el número de particiones para el tema, el valor predeterminado es 1 partición.

Modificar el archivo server.properties

porque servidor.properties

oyentes = TEXTO SIMPLE://0.0.0.0:9092

anunciado.escuchadores=PLAINTEXT://192.168.68.133:9092

springboot agrega dependencia de kafka

<dependencia>
<groupId>org.springframework.kafka</groupId>
<artifactId>primavera-kafka</artifactId>
</dependencia>

Después de agregar la dependencia spring-kafka, springboot ensambla automáticamente los beans de kafkaTemplate.

application.yml configura la conexión a kafka

primavera:
Kafka:
servidores de arranque: 192.168.68.133:9092

productor

Enviar un mensaje

@Recurso
private KafkaTemplate<String,String> kafkaTemplate;

@Prueba
vacío kafkaSendTest(){
kafkaTemplate.send("kafkamsg01","hola kafka");
}

consumidor

recibir mensajes

@Componente
clase pública KafkaConsumer {

@KafkaListener(temas = {"kafkamsg01","prueba"},groupId = "123")
consumo público vacío (mensaje de cadena) {
System.out .println ("Mensaje recibido: "+mensaje);
}

}

Si no hay ningún ID de grupo configurado

No se pudo iniciar el bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'; la excepción anidada es java.lang.IllegalStateException: no se encontró ningún group.id en la configuración del consumidor, las propiedades del contenedor o la anotación @KafkaListener; Se requiere un group.id cuando se utiliza la gestión de grupos.

@Componente
clase pública KafkaConsumer {

@KafkaListener(temas = {"kafkamsg01","prueba"},groupId = "123")
consumo público vacío (mensaje de cadena) {
System.out .println ("Mensaje recibido: "+mensaje);
}

}

Haga clic para seguir y conocer las nuevas tecnologías de Huawei Cloud lo antes posible ~

El equipo de inteligencia artificial de China de Microsoft empacó colectivamente y se fue a los Estados Unidos, involucrando a cientos de personas. ¿Cuántos ingresos puede generar un proyecto desconocido de código abierto? Huawei anunció oficialmente que la posición de Yu Chengdong se ajustó en la estación espejo de código abierto de la Universidad de Ciencia y Tecnología de Huazhong. ¡Los estafadores abrieron oficialmente el acceso a la red externa y utilizaron TeamViewer para transferir 3,98 millones! ¿Qué deberían hacer los proveedores de escritorio remoto? La primera biblioteca de visualización front-end y fundador del conocido proyecto de código abierto de Baidu, ECharts, un ex empleado de una conocida empresa de código abierto que "se fue al mar" dio la noticia: después de ser desafiado por sus subordinados, el técnico El líder se puso furioso y grosero y despidió a la empleada embarazada. OpenAI consideró permitir que la IA genere contenido pornográfico. Microsoft informó a The Rust Foundation que donó 1 millón de dólares estadounidenses. Por favor, dígame cuál es el papel de time.sleep(6) aquí. ?
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/4526289/blog/11140692
Recomendado
Clasificación