Pregunta

Hace poco refactorizado algunos de mi código de filas cosas en una base de datos usando 'datos de carga' y funciona muy bien - sin embargo, para cada registro que tengo debo subir archivos a 2 s3 - esto destruye totalmente la magnífica actualización de velocidad que yo estaba obteniendo. Mientras que yo era capaz de procesar más de 600 de estos documentos / segundo que ahora están llegando poco a poco a la 1 / segundo, por s3.

¿Cuáles son sus soluciones para este? En cuanto a la API veo que es en su mayoría REST así que no estoy seguro de qué hacer - quizás debería pegarse todo esto en la base de datos. Los archivos de texto son por lo general no más de 1,5 k. (El otro archivo que hay cosas en una representación XML del texto)

Ya cacheamos estos archivos en peticiones HTTP a mi servidor web, ya que se utilizan mucho.

Por cierto: nuestra implementación actual utiliza Java; Todavía no he intentado hilos, pero que podría ser una opción

Recomendaciones?

¿Fue útil?

Solución

Puede utilizar los botones [1] función [putObjects] de JetS3t para cargar varios archivos a la vez.

Como alternativa puede usar un subproceso de fondo para subir a S3 de una cola, y añadir archivos a la cola de su código que carga los datos en la base de datos.

[1]: http://jets3t.s3.amazonaws.com/api/org/jets3t/service/multithread/S3ServiceMulti.html#putObjects (org.jets3t.service.model.S3Bucket , org. jets3t.service.model.S3Object [])

Otros consejos

Acabo de encontrar una buena solución para cargar un directorio completo con PHP

$client->uploadDirectory(
  SOURCE_FOLDER,
  YOUR_BUCKET_NAME,
  DESTINATION,
  array(
    'concurrency' => 5,
    'debug'          => TRUE,
    'force'            => FALSE,
    'params'        => array(
      'ServerSideEncryption' => 'AES256',
    ),
  )
);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top