Explicación detallada de los principios básicos, el proceso de ejecución y los escenarios de uso de Kafka.

Explicación detallada de los principios básicos, el proceso de ejecución y los escenarios de uso de Kafka.

1. Introducción
Apache Kafka es un sistema distribuido de mensajería de publicación y suscripción La definición de kafka en el sitio web oficial de Kafka: un sistema distribuido de mensajería de publicación y suscripción. Fue desarrollado originalmente por LinkedIn, que contribuyó a la Fundación Apache en 2010 y se convirtió en uno de los principales proyectos de código abierto. Kafka es un servicio de registro de confirmación rápido, escalable, distribuido, particionado y replicado por diseño.

Comparación de varios sistemas de mensajería de sistemas distribuidos:

Insertar descripción de la imagen aquí

2. Arquitectura básica de Kafka
Su arquitectura incluye los siguientes componentes:

1. Tema: Es un tipo específico de flujo de mensajes. El mensaje es la carga útil de bytes y el tema es el nombre de la categoría o el nombre del feed del mensaje;

2. Productor: cualquier objeto que pueda publicar mensajes en temas;

3. Service Broker: los mensajes publicados se almacenan en un grupo de servidores, que se denominan Brokers o clústeres de Kafka;

4. Consumidor: puede suscribirse a uno o más temas y extraer datos del Broker para consumir estos mensajes publicados;
Insertar descripción de la imagen aquí

Como se puede ver en la figura anterior, el productor envía datos al agente Broker, el agente Broker tiene múltiples temas y el consumidor obtiene datos del Broker.

3. Principios básicos
Llamamos a la publicación de mensajes (productor), a la suscripción de mensajes (suscripción) como consumidor y a la matriz de almacenamiento intermedia como intermediario (agente), para que podamos describir aproximadamente dicha escena:

Insertar descripción de la imagen aquí

El productor produce los datos y los envía al corredor para su almacenamiento. Cuando el consumidor necesita consumir los datos, los toma del corredor y completa una serie de operaciones de procesamiento de datos.

A primera vista, es demasiado simple. ¿No dijiste que se distribuye? ¿Se distribuye si el productor, el corredor y el consumidor se colocan en tres máquinas diferentes? Mire la imagen oficial proporcionada por Kafka:
Insertar descripción de la imagen aquí

Varios intermediarios trabajan juntos, los productores y consumidores se implementan con frecuencia en diversas lógicas comerciales y los tres administran y coordinan solicitudes y reenvíos a través de zookeeper. Se completa un sistema de publicación y suscripción de mensajes distribuidos de alto rendimiento.

Hay un detalle en la imagen que debe tenerse en cuenta: el proceso del productor al corredor es push, es decir, los datos se envían al corredor, mientras que el proceso del consumidor al corredor es pull, que utiliza al consumidor para extraer datos activamente. , en lugar de que el corredor domine los datos, enviados al lado del consumidor.

4. El papel de Zookeeper en Kafka
Como se mencionó anteriormente, se menciona Zookeeper, entonces, ¿cuál es el papel de Zookeeper en Kafka?

(1) Ya sea un clúster Kafka o un productor y un consumidor, todos dependen del cuidador del zoológico para garantizar la disponibilidad del sistema y el clúster guarda cierta metainformación.

(2) Kafka utiliza zookeeper como marco de coordinación distribuida, que combina perfectamente los procesos de producción, almacenamiento y consumo de mensajes.

(3) Al mismo tiempo, con la ayuda de zookeeper, Kafka puede establecer la relación de suscripción entre productores y consumidores en una situación sin estado y lograr el equilibrio de carga entre productores y consumidores.

5. Proceso de ejecución
Primero, observe el siguiente proceso:

Insertar descripción de la imagen aquí

Miremos la imagen de arriba, reducimos el número de corredores a solo uno. Ahora supongamos que implementamos como se muestra arriba:

(1) El corredor del servidor 1 es en realidad el servidor de Kafka, porque tanto el productor como el consumidor deben devolverlo. El corredor se utiliza principalmente para almacenamiento.

(2) El servidor-2 es el lado del servidor de zookeeper y mantiene una tabla que registra la IP, el puerto y otra información de cada nodo.

(3) Lo que los servidores 3, 4 y 5 tienen en común es que todos están configurados con zkClient. Para ser más específicos, la dirección de zookeeper debe configurarse antes de ejecutarse. La razón es muy simple. La conexión entre ellos requiere cuidador del zoológico para distribuir.

(4) La relación entre el Servidor-1 y el Servidor-2. Se pueden colocar en una máquina o por separado. Zookeeper también se puede configurar con un clúster. El objetivo es evitar que una determinada unidad se cuelgue.

Hablemos brevemente sobre el orden en que se ejecuta todo el sistema:

(1) Inicie el servidor del cuidador del zoológico

(2) Inicie el servidor Kafka

(3) Si el Productor produce datos, primero encontrará el corredor a través del cuidador del zoológico y luego almacenará los datos en el corredor.

(4) Si el consumidor quiere consumir datos, primero encontrará el corredor correspondiente a través de zookeeper y luego los consumirá.

6. Características de Kafka
(1) Alto rendimiento y baja latencia: Kafka puede procesar cientos de miles de mensajes por segundo y su latencia es tan baja como unos pocos milisegundos. Cada tema se puede dividir en varias particiones y el grupo de consumidores consume las particiones;

(2) Escalabilidad: el clúster Kafka admite la expansión en caliente;

(3) Persistencia y confiabilidad: los mensajes se conservan en el disco local y se admite la copia de seguridad de datos para evitar la pérdida de datos;

(4) Tolerancia a fallos: permitir que fallen los nodos del clúster (si el número de réplicas es n, se permite que fallen n-1 nodos);

(5) Alta concurrencia: admite miles de clientes leyendo y escribiendo al mismo tiempo;

(6) Admite procesamiento en línea y fuera de línea en tiempo real: los sistemas de procesamiento de flujo en tiempo real, como Storm, se pueden usar para procesar mensajes en tiempo real, y los sistemas de procesamiento por lotes, como Hadoop, también se pueden usar para el procesamiento fuera de línea;

7. Escenarios de uso de Kafka
(1) Recopilación de registros: una empresa puede utilizar Kafka para recopilar registros de varios servicios y abrirlos a varios consumidores a través de Kafka como un servicio de interfaz unificado, como Hadoop, Hbase, Solr, etc.;

(2) Sistema de mensajes: desacoplamiento de productores y consumidores, almacenamiento en caché de mensajes, etc.;

(3) Seguimiento de la actividad del usuario: Kafka se utiliza a menudo para registrar diversas actividades de los usuarios de la web o de la aplicación, como navegar por la web, buscar, hacer clic y otras actividades. Cada servidor publica esta información de actividad en el tema de Kafka, y luego, los suscriptores pasan Suscríbase a estos temas para monitoreo y análisis en tiempo real, o cárguelos en Hadoop y almacenes de datos para análisis y minería fuera de línea;

(4) Indicadores operativos: Kafka también se utiliza a menudo para registrar datos de seguimiento operativo. Incluyendo la recopilación de datos de varias aplicaciones distribuidas y la producción de comentarios centralizados para diversas operaciones, como alarmas e informes;

(5) Procesamiento de transmisión: como transmisión de chispas y tormentas;

(6) Fuente del evento;

Supongo que te gusta

Origin blog.csdn.net/linwei_hello/article/details/105119102
Recomendado
Clasificación