Kafka 01——Instalación de Kafka y uso básico sencillo

1. Descargar e instalar

1.1 instalación de JDK

1.2 Instalación de Zookeeper

1.2.1 Selección de la versión de Zookeeper

  • Puede seleccionar la versión de Zookeeper correspondiente según la versión de Kafaka descargada a continuación. La forma de elegir es la siguiente:
    • Método 1: mire directamente el paquete jar en libs en Kafka, de la siguiente manera:
      Insertar descripción de la imagen aquí
    • Método 2: también puede consultar el código fuente para ver la información de la versión, de la siguiente manera:
      Insertar descripción de la imagen aquí

1.2.2 Descargar e instalar Zookeeper

  • Vaya al sitio web oficial y descargue la versión correspondiente según sea necesario, de la siguiente manera:
    Insertar descripción de la imagen aquí
  • Con respecto a la instalación de Zookeeper, puedes leer el siguiente artículo
    Instalación y uso de Zookeeper (win+linux) .

1.3 Instalación de Kafka

1.3.1 Descargar

1.3.2 Descompresión

  • Luego descomprímelo de la siguiente manera:
    tar -zxvf kafka_2.12-2.8.2.tgz
    
    Insertar descripción de la imagen aquí

1.3.3 Modificar archivo de configuración

  • Modifique el archivo de configuración server.propertiesde la siguiente manera:
    Insertar descripción de la imagen aquí

  • La información de configuración es la siguiente:
    Insertar descripción de la imagen aquí

    Insertar descripción de la imagen aquí

    # The id of the broker. This must be set to a unique integer for each broker.
    broker.id=0
    
    listeners=PLAINTEXT://内网IP:9092
    advertised.listeners=PLAINTEXT://公网IP:9092
    
    zookeeper.connect=zk的公网IP:2181
    
    # …… 其他配置,先默认即可
    

2. Iniciar Kafka

2.1 Inicio de Kafka

  • El comando de inicio es el siguiente:

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

    Insertar descripción de la imagen aquí

  • Después de un inicio exitoso, muestra:
    Insertar descripción de la imagen aquí

  • Comprueba el progreso:

    ps -ef | grep kafka
    

    Insertar descripción de la imagen aquí

2.2 Problemas encontrados al iniciar kafka

2.2.1 Pregunta 1

  • Descripción del problema,como sigue:
    org.apache.kafka.common.KafkaException: Socket server failed to bind to XXX:9092: Cannot assign requested address.
    
    Insertar descripción de la imagen aquí
  • causas del problema
    • La IP de la red pública del servidor (IP expuesta al mundo exterior) y la IP real (IP mostrada por ifconfig) solo pueden ser una relación de mapeo. Cuando un usuario accede a una IP externa, OpenStack la reenviará a la IP real correspondiente para acceder.
    • Pero en este momento, si la server.propertiesconfiguración en el archivo de configuración es listeners=PLAINTEXT://公网IP:9092, no se puede iniciar porque no se puede vincular el socket para escuchar y se informará el error anterior.
    • La solución también es muy simple, simplemente cambie la configuración anterior listeners=PLAINTEXT://内网IP:9092a y use la IP de la red pública normalmente para otros usos, y no tiene nada que ver con la IP real de la intranet.
  • Resolver el problema
    • Ver primeroIP de intranet

      ifconfig
      

      Insertar descripción de la imagen aquí

    • Luego modifique el archivo de configuración server.propertiesde la siguiente manera:

      listeners=PLAINTEXT://内网IP:9092
      advertised.listeners=PLAINTEXT://公网IP:9092
      

      Insertar descripción de la imagen aquí

  • Luego simplemente reinicie.
    Insertar descripción de la imagen aquí

2.2.2 Pregunta 2

3. Sencillo y práctico

3.1 crear tema

  • como sigue:
    ./kafka-topics.sh --create --zookeeper zookeeper服务的IP:2181 --replication-factor 1 --partitions 1 --topic susu-topic
    
    Insertar descripción de la imagen aquí

3.2 Ver temas creados

  • como sigue:
    ./kafka-topics.sh -list --zookeeper zookeeper服务的IP:2181
    
    Insertar descripción de la imagen aquí

3.3 Enviar mensaje

3.3.1 Enviar comando de mensaje

  • como sigue:
    ./kafka-console-producer.sh --broker-list 内网IP:9092 --topic susu-topic
    
    或者
    
    ./kafka-console-producer.sh --broker-list 公网IP:9092 --topic susu-topic
    
    Insertar descripción de la imagen aquí

3.3.2 Problemas encontrados

3.3.2.1 Pregunta 1

  • La descripción del problema es la siguiente:
    [2023-08-10 09:01:57,758] WARN [Producer clientId=console-producer] Bootstrap broker 43.143.190.116:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
    [2023-08-10 09:02:15,979] WARN [Producer clientId=console-producer] Bootstrap broker 43.143.190.116:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
    [2023-08-10 09:02:49,538] WARN [Producer clientId=console-producer] Bootstrap broker 43.143.190.116:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
    [2023-08-10 09:02:50,562] ERROR Error when sending message to topic susu-topic with key: null, value: 4 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
    
    org.apache.kafka.common.errors.TimeoutException: Topic susu-topic not present in metadata after 60000 ms.
    
    >[2023-08-10 09:03:18,069] WARN [Producer clientId=console-producer] Bootstrap broker 43.143.190.116:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
    [2023-08-10 09:03:47,001] WARN [Producer clientId=console-producer] Bootstrap broker 43.143.190.116:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
    
    Insertar descripción de la imagen aquí
  • Resuelva el problema:
    Mi solución aquí es abrir el puerto 9092. Con respecto a los problemas de puerto abierto y firewall, puede leer los siguientes artículos:
    Verifique el estado del firewall, cierre el firewall, abra y cierre puertos, etc. en Linux .

3.3.2.2 Pregunta 2

  • Los problemas después de abrir el puerto son los siguientes, descripción del problema:
     WARN [Producer clientId=console-producer] Connection to node -1 (/XXX:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
    
    Insertar descripción de la imagen aquí
  • Resuelva el problema:
    aquí hay que reiniciar el servicio, reiniciar Kafka y el problema se resolverá. No sé cuál es el problema. En resumen, ¡reiniciar puede resolver el 99% de los problemas! ! !

3.4 Recibir mensajes

3.4.1 Recibir demostración de mensaje

  • como sigue:
    ./kafka-console-consumer.sh --bootstrap-server 外网IP或内网IP:9092 --topic susu-topic --from-beginning
    
    Insertar descripción de la imagen aquí

3.4.2 Consejos para recibir mensajes

  • como sigue:
    • Método de consumo 1:consumir desde cero
      ./kafka-console-consumer.sh --bootstrap-server IP:9092 --topic susu-topic --from-beginning
      
    • Método de consumo 2: comenzar a consumir desde el desplazamiento + 1 del último mensaje
      ./kafka-console-consumer.sh --bootstrap-server IP:9092 --topic susu-topic 
      
  • detalles de la siguiente manera:
    Insertar descripción de la imagen aquí

3.5 Ver zk

  • como sigue:
    Insertar descripción de la imagen aquí

4. Resumen

4.1 Conceptos básicos de Kafka

  • Kafka es una cola de mensajes que se utiliza principalmente para procesar colas de mensajes con una gran cantidad de datos y generalmente se utiliza para el procesamiento de registros. Dado que es una cola de mensajes, Kafka también tiene las características correspondientes de la cola de mensajes.
  • Al igual que otros MQ, Kafka también tiene su propia infraestructura, que incluye principalmente Productor, Broker de clúster de Kafka, Consumidor y mensaje de registro Zookeeper.
    • Tema : El tema, un concepto virtual que consta de 1 a varias particiones, puede entenderse como una cola, y tanto los productores como los consumidores están orientados a un tema.
    • Partición : partición, la unidad de almacenamiento de mensajes real. Para lograr escalabilidad, un tema muy grande se puede distribuir a varios corredores y un tema se puede dividir en varias particiones, cada partición es una cola ordenada (las particiones están ordenadas y no se puede garantizar el orden global).
    • Productor : Productor de mensajes, el rol que publica mensajes en Kafka.
    • Consumidor : Consumidor de mensajes, un cliente que extrae mensajes de Kafka para su consumo.
    • Broker : Broker, un servidor Kafka es un Broker, un clúster consta de varios Brokers y un Broker puede acomodar varios temas.

4.2 Comandos comunes

4.2.1 Comandos básicos de uso común

  • Comando de inicio:
    ./kafka-server-start.sh ../config/server.properties &
    
  • Comando de parada:
     ./kafka-server-stop.sh
    
  • Lugar

4.2.2 Comandos sencillos y prácticos

  • Crear tema
    # 创建topic
    ./kafka-topics.sh --create --zookeeper zookeeper的IP:2181 --replication-factor 1 --partitions 1 --topic susu-topic
    
  • Ver información del tema creado
    # 查看已经创建的topic信息
    ./kafka-topics.sh -list --zookeeper zookeeper的IP:2181
    
  • Enviar un mensaje
    ./kafka-console-producer.sh --broker-list 内网IP:9092 --topic susu-topic
    
    或者
    
    ./kafka-console-producer.sh --broker-list 公网IP:9092 --topic susu-topic
    
  • recibir mensajes
    ./kafka-console-consumer.sh --bootstrap-server 外网IP或内网IP:9092 --topic susu-topic --from-beginning
    

4.3 Registro de datos

  • Verifique el registro de datos, la ruta de almacenamiento y vea qué ruta está configurada en el archivo de configuración log.dirs, de la siguiente manera:
    Insertar descripción de la imagen aquí

4.4 Diagrama de estructura

  • como sigue:
    Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/suixinfeixiangfei/article/details/131945395
Recomendado
Clasificación