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í. ?