[Kafka de la serie de entrada a abandono 2] Construcción de clústeres de Kafka y comandos básicos

El blog anterior tiene una comprensión detallada de los conceptos básicos, los modelos de producción y consumo y la arquitectura básica de Kafka. Tengo una comprensión general de Kafka. El marco general puede entenderse como la siguiente arquitectura [El líder y seguidor de una partición de partición no Almacenado en un agente]: una vez
Inserte la descripción de la imagen aquí
que se produce el mensaje, se envía al clúster de Kafka según el tema y el clúster administra el mensaje. El clúster de consumidores extrae el mensaje de forma activa y lo consume [la velocidad de consumo del consumidor se puede determinar por sí mismo, y puede existir El desperdicio del sondeo de conexión larga], el mensaje general y la gestión del clúster son realizados por Zookeeper . Después de comprenderlos, creemos un clúster de Kafka. Como solo tengo una computadora, usaré la construcción de máquinas virtuales para construir el entorno. Luego, primero implemento una máquina virtual de un solo nodo y ejecuto kafka en ella, y luego clono dos máquinas virtuales para formar una Clúster de máquinas virtuales distribuidas .

Instalación de máquina virtual de nodo único

Utilizo la siguiente combinación para construir la máquina virtual: Al preparar el entorno, decidí usar VMware + Centos7 + SecureCRT + AppNode para construir y administrar la máquina virtual. El proceso de construcción detallado no se trata aquí. Puede consultar mi otro artículo [distribución Escriba cluster building one] Configuración de máquina virtual (VMware + Centos7 + SecureCRT + AppNode) , después de construir una máquina virtual de un solo nodo de acuerdo con este artículo, podemos instalar Kafka en ella:

Descargue e instale Kafka

Busque un sitio espejo en el sitio web oficial para descargar Kafka desde el sitio oficial de kafka . Aquí elegimos el sitio espejo de la Universidad de Tsinghua para descargar un Kafka:

Inserte la descripción de la imagen aquí
Tenga en cuenta que aquí hay un pozo. Si lo tira directamente a centos mediante wget y lo descomprime, se informará un error, por lo que primero lo descargamos en Windows, luego lo cargamos en centos, lo
Inserte la descripción de la imagen aquí
descomprimimos directamente a través de nuestro AppNode: o usamos el comando : tar -xvf kafka_2.13-2.6.0.tgz, puede ver después de que se completa la descompresión Vaya al directorio anterior

Modificar el archivo de configuración de Zookeeper

Ingrese el siguiente /kafka/kafka_2.13-2.6.0/config/修改zookeeper.propertiesarchivo de configuración de ruta

dataDir=/tmp/zookeeper
dataLogDir=/tmp/zookeeper/log
clientPort=2181
maxClientCnxns=0
admin.enableServer=false
tickTime=2000
initLimit=10
syncLimit=5
#设置broker Id的服务地址,这里的012和brokerid保持一致
server.0=192.168.5.101:2888:3888
server.1=192.168.5.102:2888:3888
server.2=192.168.5.103:2888:3888

Entre ellos, el puerto 2888 es el puerto de comunicación de zookeeper y el puerto 3888 es el puerto de elección. Luego ingrese el directorio /tmp/zookeeperde dataDir para crear un archivo myid, y escriba el valor específico de server.id (se recomienda que sea consistente con broker.id de kafka)
Inserte la descripción de la imagen aquí
y complete el número de serie consistente con brokerid y el servidor correspondiente de la ip local en myid:

Inserte la descripción de la imagen aquí

Modificar el archivo de configuración de Kafka

Ingrese la siguiente ruta /kafka/kafka_2.13-2.6.0/config/y modifique la configuración de server.properties:

broker.id=0
zookeeper.connect=192.168.5.101:2181,192.168.5.102:2181,192.168.5.103:2181
log.dirs=/kafka/kafka_2.13-2.6.0/data

Clonar un clúster de máquinas virtuales

Para clonar el clúster y administrarlo, consulte mi otro blog: [Distributed Cluster Construction Two] Clone la máquina virtual y configure el clúster . Se utilizan tres máquinas para la configuración del clúster distribuido. Una vez completada la configuración, puede ver que el clúster está funcionando normalmente: por
Inserte la descripción de la imagen aquí
supuesto Una vez completada la clonación, debemos modificar el archivo de configuración y

Cree un archivo myid para cada máquina

Ingrese el directorio dataDir /tmp/zookeeperpara crear un archivo myid, y escriba el valor específico de server.id, escriba 1 y 2 en los archivos myid de 102 y 103, respectivamente, y manténgalo consistente con server.id y brokerid de cada máquina.

Modificar la configuración de Kafka de cada máquina

Ingrese la siguiente ruta de cada máquina /kafka/kafka_2.13-2.6.0/config/y modifique la configuración de server.properties

broker.id=0
zookeeper.connect=192.168.5.101:2181,192.168.5.102:2181,192.168.5.103:2181
log.dirs=/kafka/kafka_2.13-2.6.0/data
broker.id=1
zookeeper.connect=192.168.5.101:2181,192.168.5.102:2181,192.168.5.103:2181
log.dirs=/kafka/kafka_2.13-2.6.0/data
broker.id=2
zookeeper.connect=192.168.5.101:2181,192.168.5.102:2181,192.168.5.103:2181
log.dirs=/kafka/kafka_2.13-2.6.0/data

Ejecutar el comando kafka

Una vez completada la modificación, utilicemos Kafka para implementarla.En este momento, use SecureCRT para abrir tres sesiones al mismo tiempo: opere por separado en las tres máquinas como un demonio:

Empezar cuidador del zoológico y Kafka

启动zookeeper     bin/zookeeper-server-start.sh  -daemon  config/zookeeper.properties   
启动kafka集群     bin/kafka-server-start.sh      -daemon  config/server.properties

Inserte la descripción de la imagen aquí

Crear tema, ver el tema creado, ver los detalles del tema

创建topic       bin/kafka-topics.sh  --zookeeper 192.168.5.101:2181 --create --replication-factor 3 --partitions 1 --topic tml-second
查看topic列表   bin/kafka-topics.sh  --zookeeper 192.168.5.101:2181 --list
查看topic详情   bin/kafka-topics.sh  --zookeeper 192.168.5.101:2181 --describe --topic tml-second

Inserte la descripción de la imagen aquí
Cabe señalar que la cantidad de copias no puede exceder la cantidad de máquinas de clúster. Si dos copias de la misma partición aparecen en la misma máquina, el efecto de partición se perderá, de la siguiente manera:
Inserte la descripción de la imagen aquí

Al ver los detalles, la primera línea muestra un resumen de todas las particiones. Cada línea a continuación da la información en una partición. Si solo tenemos una partición, solo se muestra una línea.

  • El líder es el nodo responsable de leer y escribir entre todos los particiones dados. Cada nodo puede convertirse en el líder. Aquí, el líder es 2, que son 102 máquinas.
  • Réplicas muestra la lista de nodos del nodo donde se almacenan todas las réplicas de un partiton determinado, independientemente de si el nodo es el líder o si está vivo o no, aquí están nuestras tres máquinas, 0, 1, 2. Correspondientes a 101, 102, 103 respectivamente.
  • El conjunto de nodos cuyas copias de isr se han sincronizado. Todos los nodos de este conjunto están en un estado activo y sincronizados con el líder. Aquí están nuestras tres máquinas, 0, 1, 2. Correspondientes a 101, 102 y 103 respectivamente. Significa que nuestras tres máquinas no están fuera de línea en el clúster.

Usemos un caso complejo para determinar su mecanismo de distribución:
Inserte la descripción de la imagen aquí

Envía mensajes, consume mensajes

发送消息:bin/kafka-console-producer.sh --broker-list  192.168.5.101:9092 --topic tml-second
消费消息:bin/kafka-console-consumer.sh  --bootstrap-server 192.168.5.102:9092 --from-beginning --topic tml-second
消费同一个组的消息:bin/kafka-console-consumer.sh  --bootstrap-server 192.168.5.102:9092  --topic tml-second --consumer.config config/consumer.properties 

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Eliminar tema

 bin/kafka-topics.sh  --zookeeper 192.168.5.101:2181 --delete --topic tml-kafka

Inserte la descripción de la imagen aquí

Cerrar el servicio kafka

bin/kafka-server-stop.sh stop

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Este blog es un proceso difícil. Dado que Linux no es muy grande, el clúster siempre falla al iniciarse después de que el clúster está configurado. Se necesitaron dos días para descubrir que zookeeper y kafka no se iniciaron como un proceso demonio. CTRL + C eliminó el proceso y provocó el seguimiento. Kafka siempre no puede conectarse con el guardián del zoológico, pero finalmente se ha construido un clúster distribuido y ¡habrá otra aldea!

Supongo que te gusta

Origin blog.csdn.net/sinat_33087001/article/details/108230440
Recomendado
Clasificación