Cola de prioridad con Autoescalado de Punto de Trabajadores
Tengo una cola FIFO simple de AWS SQS implementada con el escalador automático de pods de trabajador WPA, ahora quiero convertir esa cola en una cola de prioridad. Una opción sería usar Amazon MQ, pero es costoso y su propósito es realmente diferente. Otra opción sería crear múltiples colas N, donde N es la prioridad de la cola. Ahora el problema actual es cómo funcionará el escalador automático de pods de trabajador, cómo seleccionará la cola y cómo se ajustará automáticamente.
davy.ai
Solución para crear una Cola de Prioridad utilizando AWS SQS FIFO
Para crear una Cola de Prioridad utilizando AWS SQS FIFO, podemos utilizar una combinación de múltiples valores en los atributos del mensaje y colas con retardo. Los atributos del mensaje se pueden utilizar para definir prioridades, mientras que las colas con retardo se pueden utilizar para agregar un tiempo adicional de espera para procesar un lote de mensajes con una prioridad más alta.
Una forma de implementar esta solución es crear múltiples colas SQS FIFO para cada nivel de prioridad. El escalador automático del pod de trabajador puede modificarse para buscar mensajes primero en la cola de prioridad más alta y escalar los pods en consecuencia.
Otra forma de implementar esta solución es utilizar una sola cola SQS FIFO y agregar un retardo en los mensajes con una prioridad más alta. Los mensajes con una prioridad más alta pueden tener un retardo más corto en comparación con aquellos con una prioridad más baja. El escalador automático del pod de trabajador puede modificarse para considerar la prioridad de los mensajes en función del temporizador de retardo y escalar los pods en consecuencia.
Modificaciones en el Escalador Automático del Pod de Trabajador
El escalador automático del pod de trabajador puede modificarse para considerar la prioridad de los mensajes en una cola FIFO. Algunos cambios que se pueden realizar en el escalador automático del pod de trabajador son:
Para implementar esto, podemos utilizar el escalador automático del pod de trabajador existente en Github, actualizando la lógica para buscar mensajes según la prioridad y escalar los pods en consecuencia.
En conclusión, se puede lograr la creación de una cola de prioridad en AWS SQS FIFO utilizando atributos del mensaje y colas con retardo. Podemos modificar el algoritmo del escalador automático del pod de trabajador para considerar la prioridad de los mensajes en la cola y escalar los pods en consecuencia. Esto garantizará que las tareas con mayor prioridad se ejecuten antes, al mismo tiempo que se mantiene la escalabilidad de la aplicación.