Red de conocimiento informático - Aprendizaje de programación - Introducción a Kafka Introducción al uso de la herramienta Kafka Ejemplos de uso

Introducción a Kafka Introducción al uso de la herramienta Kafka Ejemplos de uso

Para una instalación detallada visite: /p/c74e0ec577b0

macOS se puede instalar rápidamente con homebrew, visite la dirección: /p/cddd25da8061

Enlace original: /p /06884c5bf3f1

Ver lista de temas:

Crear tema:

--create: Crear comando

--topic: Especificar tema; nombre más tarde;

--replication-factor: especifica el número de réplicas posteriores;

--partitions: especifica el número de particiones, determinado según el número de corredores;

--zookeeper: especifique el enlace zk de zookeeper.connect más tarde

Ver un tema:

Como una especie de sistema de mensajería, Kafka, por supuesto, se puede utilizar como Una plataforma de transferencia de datos de mensajes como otro middleware de mensajes. Tomemos el lenguaje Java como ejemplo para ver cómo usar Kafka para enviar y recibir mensajes.

1. Introducción de dependencias

2. Productor de mensajes

En el ejemplo, la clase KafkaProducer se utiliza para crear un productor de mensajes. Los parámetros del constructor de esta clase. son una serie de valores de atributos. Echemos un vistazo al significado específico de estos atributos.

bootstrap.servers representa un clúster Kafka. Si hay varios servidores físicos en el clúster, las direcciones de los servidores están separadas por comas, como "192.168.1.1:9092, 192.168.1.2:9092". localhost es la dirección de la computadora del autor y 9092 es el número de puerto de escucha predeterminado del servidor Kafka.

key.serializer y value.serializer representan el tipo de serialización del mensaje. Los mensajes de Kafka se envían al servidor Kafka en forma de pares clave-valor. Antes de enviar el mensaje al servidor, el productor del mensaje debe serializar diferentes tipos de mensajes en tipos binarios. servidor, así que use The is StringSerializer.

key.deserializer y value.deserializer representan el tipo de deserialización del mensaje. Deserialice el mensaje binario del clúster de Kafka al tipo especificado. Debido a que la serialización usa el tipo String, use StringDeserializer para la deserialización.

zk.connect se utiliza para especificar la URL para que Kafka se conecte a ZooKeeper. Proporciona detección automática de servidores de clúster basados ​​en ZooKeeper y puede leer dinámicamente la información de configuración del clúster de Kafka desde ZooKeeper.

Una vez que tenga un productor de mensajes, puede llamar al método de envío para enviar mensajes.

El parámetro de entrada de este método es un objeto de tipo ProducerRecord. La clase ProducerRecord proporciona una variedad de parámetros de constructor, los siguientes tres son comunes:

ProducerRecord(tema, partición, clave, valor

);

ProducerRecord(tema, clave, valor);

ProducerRecord(tema, valor);

El tema y el valor son obligatorios, la partición y la clave son opcionales. Si se especifica el tiempo de espera, el mensaje se enviará a la partición especificada, si no se especifica la partición pero se especifica la clave, el mensaje se enviará a la partición correspondiente según el hash (clave): si no hay partición ni clave; Si se especifica, el mensaje se enviará en modo round-robin (es decir, se enviará por turnos en forma de sondeo) a cada partición. En el ejemplo, se enviarán tres mensajes al tema del tema de prueba

.

3. Consumidor de mensajes

p>

Similar al productor de mensajes, la clase KafkaConsumer se utiliza para crear un consumidor de mensajes. El parámetro constructor de esta clase también es una serie de valores de atributos. Los servidores p>

bootstrap.son los mismos que los del productor. Indica el clúster de Kafka.

group.id indica el ID del grupo del consumidor.

enable.auto.commit indica si. la compensación del consumidor se confirma automáticamente.

auto.commit.interval .ms se utiliza para establecer el intervalo de tiempo para enviar automáticamente las compensaciones a ZooKeeper. La unidad de tiempo es

clave. deserializer y value.deserializer representan el uso de cadenas para deserializar los datos del mensaje.

El consumidor del mensaje utiliza el método de suscripción para suscribirse al mensaje cuyo tema es el tema de prueba. El consumidor llama al método de encuesta para sondear el clúster de Kafka. para mensajes y espera hasta que no haya ningún mensaje en el clúster de Kafka o se alcance el tiempo de espera (el tiempo de espera se establece en 100 milisegundos. Si se lee el mensaje, imprima la partición, el desplazamiento, la clave, etc.). del registro del mensaje