Cómo se debe transmitir archivos de gran tamaño a través de Kafka?

Karl Richter:

Estoy en el proceso de migración de un monolito a base de ácido a una arquitectura basada en eventos microService. En el monolito archivos potencialmente grandes se almacenan en una base de datos y quiero compartir esta información (incluyendo el contenido del archivo) con los microservicios.

Mi enfoque sería dividir el archivo en bloques numerados y enviar varios mensajes (por ejemplo 1 FileCreatedMessagecon los metadatos y un id seguido por n FileContentMessageque contiene el bloque y su número de secuencia). En los mensajes secundarios que reciben puede no llegar a fin. Por lo tanto me gustaría almacenar los bloques de mensajes, el orden y uno a ellos y almacenar el resultado.

¿Hay algún método que me permite transmitir los datos a través de Kafka con un mensaje u otro método sin la sobrecarga de la aplicación de la spliting, el orden y la lógica de uno a varios mensajes?

Me di cuenta de Kafka corrientes. Parece que resolver diferentes problemas que éste.

Katya Gorshkova:

Kafka no es el enfoque correcto para el envío de los archivos de gran tamaño. En primer lugar, es necesario asegurarse de que los trozos de un mensaje llegará a la misma partición, para que puedan ser procesados ​​por la instancia del consumidor. El punto débil aquí es que su consumo puede fallar en el medio de perder los trozos, se reunió. Si almacena los trozos en algunos de almacenamiento (base de datos) hasta que todos ellos llegan, entonces necesitará el proceso separado para ensamblarlos. Su voluntad también tienen que pensar en lo que sucede si se suelta un trozo o tiene un error durante el procesamiento de la porción. Estamos pensando en esta pregunta en nuestra empresa y decidimos no enviar archivos a través de Kafka en absoluto, mantenerlos en almacenamiento y enviar la referencia a ellos en el interior del mensaje.

En este artículo se resume ventajas y desventajas.

flujos de Kafka no le ayudará aquí, ya que es el marco, que contiene construcciones de alto nivel para trabajar con corrientes, sino que simplemente funciona sobre Kafka.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=179957&siteId=1
Recomendado
Clasificación