centos7 instalar kafka2.12

Descripción general de Kafka

Kafka es un sistema distribuido que consta de servidores y clientes que se comunican a través de protocolos de red TCP de alto rendimiento. Se puede implementar en hardware, máquinas virtuales y contenedores en entornos internos y en la nube.

1) Apache Kafka es un sistema de mensajería de código abierto escrito en Scala. Es un proyecto de sistema de mensajería de código abierto desarrollado por Apache Software Foundation.

2) Kafka fue desarrollado originalmente por LinkedIn y de código abierto a principios de 2011. Graduado de Apache Incubator en octubre de 2012. El objetivo de este proyecto es proporcionar una plataforma unificada, de alto rendimiento y baja latencia para procesar datos en tiempo real.

3) Kafka es una cola de mensajes distribuida. Kafka clasifica los mensajes según el tema cuando se almacenan. El remitente se llama Productor y el destinatario del mensaje se llama Consumidor. Además, el clúster de Kafka consta de varias instancias de Kafka, y cada instancia (servidor) se llama intermediario.

4) Tanto el clúster de Kafka como el consumidor confían en el clúster del guardián del zoológico para guardar cierta metainformación para garantizar la disponibilidad del sistema.

Inserte la descripción de la imagen aquí
Diagrama de arquitectura de Kafka

Conceptos en Kafka

1) Productor: Los productores son aplicaciones cliente que publican (escriben) eventos en Kafka.

2) Consumidor: Los consumidores son aplicaciones cliente que suscriben (leen y procesan) estos eventos.

3) Tema: el tema es similar a la carpeta en el sistema de archivos, y el evento es el archivo en la carpeta. Los mensajes generalmente se distinguen por tema.

4) Grupo de consumidores (CG): grupo de usuarios, Kafka distingue a los consumidores por grupo de usuarios. Los mensajes de un tema se enviarán a todos los grupos de usuarios. Sin embargo, el mensaje solo se enviará a un consumidor del grupo de usuarios.

5) Broker: Un servidor kafka es un corredor. Un clúster está compuesto por varios corredores. Un corredor puede contener varios temas.

6) Partición: para lograr escalabilidad, un tema muy extenso se puede distribuir a múltiples agentes (es decir, servidores), un tema se puede dividir en múltiples particiones y cada partición es una cola ordenada. A cada mensaje de la partición se le asignará una identificación ordenada (desplazamiento). Kafka solo garantiza que los mensajes se enviarán al consumidor en el orden de una partición y no garantiza el orden de un tema en su totalidad (entre varias particiones);

7) Offset: Los archivos de almacenamiento de Kafka llevan el nombre de offset.kafka La ventaja de utilizar el offset como nombre es que facilita la búsqueda. Por ejemplo, si desea encontrar la ubicación en 2049, simplemente busque el archivo 2048.kafka. Por supuesto, el primer desplazamiento es 00000000000.kafka

Instalación de Zookeeper

Dado que kafka requiere el servicio Zookeeper, primero debemos instalar Zookeeper

Introducción a Zookeeper

ZooKeeper es un marco distribuido de código abierto que proporciona servicios básicos para coordinar aplicaciones distribuidas. Expone un conjunto de servicios comunes-Sincronización distribuida, Servicio de nombres, Mantenimiento grupal, etc. a aplicaciones externas, simplificando la coordinación y gestión de aplicaciones distribuidas.

Es una implementación de código abierto de Chubby de Google. Puede integrarse en un clúster por sí mismo. Este clúster zk se utiliza para administrar el clúster de aplicaciones, monitorear el estado de cada nodo en el clúster de aplicaciones y decidir la siguiente operación razonable en función de la información de retroalimentación enviada por cada nodo en el clúster de aplicaciones

Instalación de Zookeeper

Descargue el paquete comprimido zookeeper: https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
cárguelo en el servidor para descomprimir

Implementar un clúster seudodistribuido de Zookeeper de 3 nodos

  1. Primero, cree un directorio para la instalación del clúster, llamado zookeeper. En segundo lugar, descomprima tres copias de ZooKeeper en este directorio para formar 3 nodos. ZooKeeper en cada directorio representa un nodo.
    Esto forma la siguiente estructura de directorio de instalación:
    Inserte la descripción de la imagen aquí
  2. Cree un directorio de datos, un directorio de registros y un archivo myid para cada nodo
    . El contenido del archivo myid es el número del nodo en el clúster. El número del nodo zookeeper1 se escribe como 1, el número de zookeeper2 es 2 y el número de zookeeper3 es 3.
  3. Cree un archivo de configuración para cada nodo.
    Cambie el nombre del
    archivo de configuración zoo_sample.cfg a zoo.cfg bajo zookeeper1. El contenido del archivo de configuración zoo.cfg es el siguiente:
dataDir=/usr/zookeeper/zookeeper1/data
dataLogDir=/usr/zookeeper/zookeeper1/logs
clientPort=2181
server.1=127.0.0.1:8880:7770
server.2=127.0.0.1:8881:7771
server.3=127.0.0.1:8882:7772

De la misma manera, cree zoo.cfg en las ubicaciones correspondientes de zookeeper2 y zookeeper3, y copie el contenido del archivo en zoo.cfg de zookeeper1. Solo necesita cambiar los tres elementos de configuración de clientport, dataDir y dataLogDir. El puerto de cliente de Zookeeper2 se cambia a 2182, el puerto de cliente de zookeeper3 se cambia a 2183, y dataDir
y dataLogDir se modifican a los directorios correspondientes.

  1. Inicie el clúster zk
    Ingrese al directorio bin de zookeeper0, el primer nodo del clúster zookeeper, e inicie el servicio
bin/zkServer.sh start

Luego, de la misma manera, inicie los servicios zookeeper1 y zookeeper2 por turno.

Comandos de servicio del guardián del zoológico

#启动ZK服务: 
bin/zkServer.sh start 
#查看ZK服务状态: 
bin/zkServer.sh status 
#停止ZK服务: 
bin/zkServer.sh stop 
#重启ZK服务: 
bin/zkServer.sh restart  
#连接服务器: 
zkCli.sh -server 127.0.0.1:2181 

kafka

Primero, debe descargar la
dirección del sitio web oficial de Kafka en el sitio web oficial: http://kafka.apache.org/downloads
Inserte la descripción de la imagen aquí

Después de la descarga, cargue a centos7 para
descomprimir

tar -zxvf kafka_2.12-2.1.0.tgz 

Modifique el archivo de configuración
cd al directorio de configuración, edite server.properties

broker.id=0
#此处填写你的服务器ip
listeners=PLAINTEXT://192.168.130.128:9092
#选择你的logs存放目录
log.dirs=/usr/kafka2.12/kafka-logs
delete.topic.enable=true
#zookeeper集群信息
zookeeper.connect=192.168.130.128:2181,192.168.130.128:2182,192.168.130.128:2183

Empieza el servicio

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

Ahora crea un nuevo tema con una copia de 3

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic topic_test

Ver información del tema en el clúster

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic topic_test

Inserte la descripción de la imagen aquí
Ver la lista de temas de kafka

bin/kafka-topics.sh --zookeeper localhost:2181 --list

Inserte la descripción de la imagen aquí
Ver datos del tema que se han consumido

bin/kafka-console-consumer.sh --bootstrap-server 192.168.130.128:9092 --topic topic_test --from-beginning 

Ver lista de grupos de consumidores de kafka

bin/kafka-consumer-groups.sh --bootstrap-server 192.168.130.128:9092 --list

Inserte la descripción de la imagen aquí

Eliminar topic_test

bin/kafka-topics.sh  --delete --zookeeper 127.0.0.1:2181  --topic topic_test

Modificar el número de particiones

bin/kafka-topics.sh --zookeeper 192.168.130.128:2181 --alter --topic topic_test --partitions 4

Supongo que te gusta

Origin blog.csdn.net/weixin_42494845/article/details/108868889
Recomendado
Clasificación