Tasa de encuestas al consumidor con Akka, SQS y Camel

Un proyecto en el que estoy trabajando requiere la lectura de mensajes de SQS, y decidí usar Akka para distribuir el procesamiento de estos mensajes.

Dado que SQS es compatible con Camel, y hay una funcionalidad incorporada para su uso en Akka en la clase de Consumidor, imaginé que sería mejor implementar el punto final y leer los mensajes de esta manera, aunque no había visto muchos ejemplos de personas que lo hicieran.

Mi problema es que no puedo sondear mi cola lo suficientemente rápido para mantenerla vacía o casi vacía. Lo que originalmente pensé era que podía hacer que un Consumidor recibiera mensajes sobre Camel de SQS a una velocidad de X / s. A partir de ahí, simplemente podría crear más Consumidores para llegar a la velocidad a la que necesitaba procesar los mensajes.

Mi consumidor:

import akka.camel.{CamelMessage, Consumer}
import akka.actor.{ActorRef, ActorPath}

class MyConsumer() extends Consumer {
  def endpointUri = "aws-sqs://my_queue?delay=1&maxMessagesPerPoll=10&accessKey=myKey&secretKey=RAW(mySecret)"
  var count = 0

  def receive = {
    case msg: CamelMessage => {
      count += 1
    }
    case _ => {
      println("Got something else")
    }
  }

  override def postStop(){
    println("Count for actor: " + count)
  }
}

Como se muestra, he puestodelay=1 tanto como&maxMessagesPerPoll=10 para mejorar la tasa de mensajes, pero no puedo generar múltiples consumidores con el mismo punto final.

Leí en los documentos queBy default endpoints are assumed not to support multiple consumers. y creo que esto también es válido para los puntos finales de SQS, ya que generar múltiples consumidores solo me dará un consumidor donde, después de ejecutar el sistema por un minuto, el mensaje de salida esCount for actor: x en lugar de los otros que producenCount for actor: 0.

Si esto es del todo útil; Puedo leer aproximadamente 33 mensajes / segundo con esta implementación actual en el único consumidor.

¿Es esta la forma correcta de leer los mensajes de una cola SQS en Akka? Si es así, ¿hay alguna manera de hacer que esto se amplíe para poder aumentar mi tasa de consumo de mensajes más cerca de la de 900 mensajes por segundo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta