Entrevista pedirle a Kafka que lea este artículo es suficiente

Primero, introduce a Kafka

Inserte la descripción de la imagen aquí
Razones para un alto rendimiento:
1. Cada consumidor lee los datos en lotes
2. Cada consumidor puede consumir mensajes de partición al mismo tiempo en el clúster de consumidores
3. El productor envía mensajes y los coloca en el búfer. La desventaja es que los mensajes Es fácil perder
4, 0 copias, NIO admite, reduciendo el número de copias
5, para lograr la compresión de datos, reducir la transmisión de ancho de banda

1. La primera vez: lea el archivo del disco en el búfer del núcleo del sistema operativo;
2. La segunda vez: copie los datos del búfer del núcleo en el búfer de la aplicación;
3. El tercer paso: copie la aplicación. Los datos en el búfer se copian en el búfer de envío de la red de sockets (el búfer perteneciente al núcleo del sistema operativo);
4. La cuarta vez: copie los datos del búfer de sockets en la tarjeta de red, y la tarjeta de red realiza la transmisión de red.

1. Datos de red persistentes al disco (Productor al Broker)
2. Los archivos de disco se envían a través de la red (Broker al Consumidor)

La función de brokeid
no sigue la especificación JMS Java Message Service (Java Message Server), solo publica y suscribe partición
rápida y escalable

Hay múltiples productores, múltiples corredores y múltiples consumidores en una arquitectura Kafka. Cada productor puede corresponder a múltiples temas, y cada consumidor solo puede corresponder a un grupo de consumidores.

Autor: Big Data Jefe de la División de datos
enlace: https: //www.jianshu.com/p/4bf007885116
Fuente: libros de Jane
tienen derechos de autor por el autor. Para reproducción comercial, por favor contacte al autor para autorización, y para reproducción no comercial, por favor indique la fuente.

2. ¿Por qué RabbitMQ no está agrupado?

Similar al clúster de redis sharding (16384 ranuras para tarjetas) es el mejor, no habrá datos redundantes
en caso de tiempo de inactividad. Copia de almacenamiento

3. ¿Las colas e interruptores persistirán en los mensajes?

4. Sustantivos

Broker: Broker significa que un lado del servidor MQ, múltiples Broker significa que múltiples lados diferentes del servidor MQ forman un grupo;

Tema: Un servidor MQ en el directorio de temas puede almacenar múltiples temas diferentes. Cada tema es en realidad una clasificación de mensaje
: es el parámetro pasado por la comunicación asincrónica.

Partición: qué tan grande es un grupo de particiones para dividir 10 millones de datos en una base de datos particionada en 10 ranuras para tarjetas de tabla

El particionamiento se implementa en Kafka: un corredor significa una región

Productor: El productor entrega mensajes a MQ.
Consumidor: MQ envía mensajes a los consumidores.
Grupo de consumidores: Agrupando a nuestros consumidores.
Desplazamiento: el desplazamiento es en realidad la posición de índice de nuestro mensaje.

Kafaka tiene más particiones y temas, sin colas, solo temas para publicar y suscribirse

Cinco transacciones distribuidas

Resolver transacciones distribuidas es un tipo de idea que no tiene nada que ver con el marco.
Las soluciones comunes son 2PC / 3PC / MQ

6. ¿Por qué Kafaka confía en Zookeeper?

Registre todos los intermediarios en zk, de modo que esté agrupado, use la notificación de eventos de nodo para indicar a los intermediarios qué grupos

Porque:
1. Kafka almacenará información de MQ en zk, y los consumidores también se registrarán en zk. Los consumidores no prestan atención a algunos brokes para obtener información directamente de zk.
2. Para facilitar la expansión de todo el clúster, use zk Notificación de tiempo percepción mutua

Kafka solo necesita modificar broke.id para distinguir

7. ¿El registro del clúster está registrado en cada nodo o solo en un nodo?

Hay un solo nodo del maestro al esclavo,
como Eureka es cada nodo

Ocho, la diferencia entre kafka y rabbitmq

Nueve, ¿cómo garantiza Kafka el orden de los mensajes?

Diez, la diferencia entre la cola y el tema

Cola: Primero en entrar, primero en salir
Tema: Encapsulación de colas

11. ¿Por qué MQ tiene el problema de la secuencia de mensajes?

Antecedentes:
1. Clúster de consumidores
2. Clúster de servidores MQ

La situación en la que el mensaje no se interrumpirá:
1. El mensaje entregado por el productor está en el mismo agente y es consumido por el mismo consumidor.

Cómo resolver:
1. La clave es la misma, el hash es el mismo, en este momento el mensaje se entregará en el mismo Broke, siempre que solo haya un consumidor
2.

¿Por qué MQ causa el problema de la secuencia de mensajes?
1. Si el productor envía mensajes a MQ con el mismo comportamiento, no hay necesidad de considerar la secuencia. Cuando el comportamiento es diferente, se debe considerar la secuencia de mensajes.
2. MQ almacena mensajes por defecto. Tiene un cierto orden por sí mismo, siguiendo Principio de primera salida (en el caso de un solo MQ)
3. Si hay varios consumidores que se suscriben a la misma cola, el orden de los consumidores puede verse interrumpido
4. Si el corredor es un clúster, debido a diferentes Los mensajes pueden almacenarse en diferentes intermediarios, y el orden de los consumidores individuales puede verse interrumpido al recibir mensajes.

¿Cómo solucionarlo?
Asegúrese de que los mensajes entregados por el productor se coloquen en el mismo corredor, que corresponde a un solo consumo del consumidor (kafka establece la misma clave para el mensaje, puede garantizar la entrega al mismo corredor)
pero el rendimiento de un solo consumidor es muy bajo, puede usar el consumo El usuario obtiene mensajes en lotes y luego utiliza una cola de memoria para almacenar (también calcule qué cola de memoria se almacena de acuerdo con la clave), cada cola de memoria solo será procesada por un hilo correspondiente

Cada corredor en kafka corresponde a un consumidor.
En el mismo grupo, solo un consumidor eventualmente consumirá el mismo mensaje

12. Razones para el alto rendimiento de Kafka

1. Usar la escritura secuencial para almacenar mis datos
2. Tanto los productores como los consumidores admiten el procesamiento por lotes. Los productores entregan mensajes a través de formularios asíncronos + buffers. Desventajas: los datos pueden perderse
3. Copia cero de datos, NIO en sí Soporte
4. Partición del tema de la tienda
5. Comprima los datos y reduzca la transmisión del ancho de banda

XIII

14)

15)

16)

17)

18)

19)

Veinte

Veintiuno

22)

Veintitrés

24)

25)

26)

27)

28)

29)

Treinta

52 artículos originales publicados · Me gusta2 · Visitas 1864

Supongo que te gusta

Origin blog.csdn.net/qq_42972645/article/details/104766567
Recomendado
Clasificación