Este artigo foi compartilhado pela Huawei Cloud Community " Introdução ao springboot+kafka de mãos dadas ", autor: QGS.
Instale o kafka
Iniciar o ambiente local Kafka requer Java 8+ ou superior
Kafka é um sistema de mensagens de publicação e assinatura distribuída de alto rendimento que pode processar todos os dados de streaming de ação dos consumidores no site.
Os métodos de inicialização do Kafka incluem Zookeeper e Kraft. Você só pode escolher um dos dois métodos de inicialização e não pode usá-los ao mesmo tempo.
Baixar Kafka https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
Descompacte tar -xzf kafka_2.13-3.7.0.tgz
1. Zookeeper inicia Kafka (kafka tem zookeeper integrado)
Kafka confia no Zookeeper
1. Inicie o Zookeeper 2. Inicie o Kafka
Comece a usar o Zookeeper do próprio 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. Servidor Zookeeper inicia Kafka
Instalação do 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 o servidor Zookeeper
cp zoo_sample.cfg zoo.cfg
Inicie o servidor Zookeeper
./zkServer.sh iniciar
Modificar porta Zookeeper
Adicione conteúdo ao Zoo.cfg
admin.serverPort=8099
Reinicie o Zookeeper no diretório apache-zookeeper-3.9.2-bin/bin
Servidor Zookeeper inicia kafka
Diretório /opt/kafka_2.13-3.7.0/bin
./kafka-server-start.sh ../config/server.properties &
Arquivo de configuração Kafka server.properties
3. Use o KRaft para iniciar o Kafka
Identificador universalmente exclusivo UUID (Identificador Universalmente Único)
1, UUID de cluster gerado: ./kafka-storage.sh random-uuid
2. Formate o diretório de log kafka: ./kafka-storage.sh format -t 3pMJGNJcT0uLIBsZhbucjQ -c ../config/kraft/server.properties
3. Inicie o kafka: ./kafka-server-start.sh ../config/kraft/server.properties &
springboot integra kafka
Ao criar um tópico, se você não especificar o número de partições para o tópico, o padrão será 1 partição.
Modifique o arquivo server.properties
porque server.properties
ouvintes=PLAINTEXT://0.0.0.0:9092
anunciado.listeners=PLAINTEXT://192.168.68.133:9092
springboot adiciona dependência do kafka
<dependência> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency>
Depois de adicionar a dependência spring-kafka, o springboot monta automaticamente os beans do kafkaTemplate.
application.yml configura conexão com kafka
primavera: Kafka: servidores de inicialização: 192.168.68.133:9092
produtor
Envie uma mensagem
@Recurso private KafkaTemplate<String,String> kafkaTemplate; @Teste void kafkaSendTest(){ kafkaTemplate.send("kafkamsg01","olá kafka"); }
consumidor
receber mensagens
@Componente classe pública KafkaConsumer { @KafkaListener(tópicos = {"kafkamsg01","teste"},groupId = "123") public void consumir(String mensagem){ System.out .println ("Mensagem recebida: "+mensagem); } }
Se nenhum groupid estiver configurado
Falha ao iniciar o bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'; a exceção aninhada é java.lang.IllegalStateException: Nenhum group.id encontrado na configuração do consumidor, nas propriedades do contêiner ou na anotação @KafkaListener; um group.id é necessário quando o gerenciamento de grupo é usado.
@Componente classe pública KafkaConsumer { @KafkaListener(tópicos = {"kafkamsg01","teste"},groupId = "123") public void consumir(String mensagem){ System.out .println ("Mensagem recebida: "+mensagem); } }
Clique para seguir e conhecer as novas tecnologias da Huawei Cloud o mais rápido possível~
A equipe de IA da Microsoft na China fez as malas e foi para os Estados Unidos, envolvendo centenas de pessoas. Quanta receita um projeto de código aberto desconhecido pode trazer? A Huawei anunciou oficialmente que a posição da Universidade de Ciência e Tecnologia de Yu Chengdong foi ajustada. abriu oficialmente o acesso à rede externa Os fraudadores usaram o TeamViewer para transferir 3,98 milhões! O que os fornecedores de desktop remoto devem fazer? A primeira biblioteca de visualização front-end e fundador do conhecido projeto de código aberto ECharts do Baidu - um ex-funcionário de uma conhecida empresa de código aberto que "foi para o mar" deu a notícia: Depois de ser desafiado por seus subordinados, o técnico O líder ficou furioso e rude e demitiu a funcionária grávida. A OpenAI considerou permitir que a IA gerasse conteúdo pornográfico. A Microsoft relatou à The Rust Foundation doou 1 milhão de dólares americanos. ?