Compartir tecnología

productor kafka

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

productor

Los productores son responsables de crear mensajes y luego entregárselos a Kafka.
Insertar descripción de la imagen aquí

balanceo de carga

  1. Estrategia de sondeo.
  2. Estrategia aleatoria.
  3. Hash según clave.

La estrategia de partición predeterminada de Kafka: si se especifica la clave, los mensajes con la misma clave se enviarán a la misma partición (las particiones están ordenadas, si no se especifica la clave, se utiliza la estrategia de sondeo);

Enviar un mensaje

acks especifica cuántas réplicas de partición necesita el productor para recibir el mensaje antes de considerar que el mensaje se escribió correctamente.

No existen ventajas ni desventajas entre los tres métodos. En cambio, es necesario elegir la estrategia adecuada según las condiciones locales. Existe una compensación entre rendimiento y confiabilidad.

Hay 3 formas de enviar mensajes:

Envía y olvida.

acuses = 0。
El productor no espera ninguna respuesta del corredor después de enviar el mensaje. En la mayoría de los casos, los mensajes se pueden entregar exitosamente porque Kafka tiene alta disponibilidad y el productor tiene un mecanismo para intentar reenviarlos automáticamente. Sin embargo, si se produce un error o un tiempo de espera que no se puede reintentar, el mensaje se perderá y la aplicación no recibirá ninguna información ni excepción.
En el mismo entorno de configuración, establecer acks en 0 puede lograr el máximo rendimiento.

Enviar de forma asincrónica

acks = 1, valor predeterminado.
Después de que el productor envía el mensaje, siempre que la copia líder de la partición escriba correctamente el mensaje, recibirá una respuesta exitosa del servidor.

  • Si el mensaje no se puede escribir en la copia líder, como cuando la copia líder falla y se reelige una nueva copia líder, el productor recibirá una respuesta de error. Para evitar la pérdida del mensaje, el productor puede optar por reenviar el mensaje. mensaje.
  • Si se escribe un mensaje en la copia líder y se devuelve una respuesta exitosa al productor, y la copia líder falla antes de ser extraída por otras copias seguidoras, el mensaje aún se perderá en este momento porque el mensaje correspondiente no existe en el Copia del líder recién elegido.
    acks se establece en 1, que es un compromiso entre la confiabilidad y el rendimiento del mensaje.
Enviar sincrónicamente

acks = -1 o acks = todos.
Después de que el productor envía el mensaje, debe esperar a que todas las réplicas en el ISR escriban correctamente el mensaje antes de poder recibir una respuesta exitosa del servidor.
En el mismo entorno de configuración, establecer los reconocimientos en -1 (todos) puede lograr la mayor confiabilidad. Pero esto no significa que el mensaje deba ser confiable, porque puede haber solo una copia líder en el ISR, lo que degenera en la situación de acks=1.