Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
SUS02-BP06 Implementare il buffering o il throttling per appiattire la curva di domanda
Il buffering e la limitazione (della larghezza di banda della rete) riducono la curva delle richieste e la capacità allocata per il tuo carico di lavoro.
Anti-pattern comuni:
-
Elabori immediatamente le richieste del client, anche se non è necessario.
-
Non analizzi i requisiti relativi alle richieste dei clienti.
Vantaggi dell'adozione di questa best practice: riduzione della curva della domanda in modo da diminuire la capacità allocata richiesta per il carico di lavoro Ridurre la capacità allocata significa ridurre il consumo di energia e contenere l'impatto ambientale.
Livello di rischio associato se questa best practice non fosse adottata: basso
Guida all'implementazione
Diminuire la curva della domanda del carico di lavoro può aiutarti a ridurre la capacità allocata di un carico di lavoro, oltre al suo impatto sull'ambiente. Supponiamo che un carico di lavoro abbia la curva della domanda mostrata nella figura qui sotto. Questo carico di lavoro presenta due picchi e per gestire tali picchi viene eseguito il provisioning della capacità di risorse mostrata dalla linea arancione. Le risorse e l'energia utilizzate per questo carico di lavoro non sono indicate nell'area sotto la curva della domanda, ma nell'area sotto la linea della capacità fornita, poiché per gestire questi due picchi è necessario eseguire il provisioning di tale capacità.
Puoi usare il buffering o la limitazione (della larghezza di banda della rete) per modificare la curva della domanda e appianare i picchi, con conseguente diminuzione della capacità allocata e consumo inferiore di energia. Implementa la limitazione (della larghezza di banda della rete) quando i client eseguono nuovi tentativi. Implementa il buffering per archiviare la richiesta e rinviare l'elaborazione a un secondo momento.
Passaggi dell'implementazione
-
Analizza le richieste del client per stabilire come rispondere. Le domande da considerare includono:
-
Questa richiesta può essere elaborata in modo asincrono?
-
Il client ha la possibilità di ripetere i tentativi?
-
-
Se il client ha la possibilità di ripetere i tentativi puoi implementare la limitazione (della larghezza di banda della rete), che indica alla sorgente che, se non è in grado di soddisfare la richiesta all'ora corrente, dovrebbe riprovare più tardi.
-
Puoi utilizzare Amazon API Gateway
per implementare il throttling.
-
-
Per i client che non possono eseguire altri tentativi, è necessario implementare un buffer per ridurre i picchi della curva della domanda. Il buffering rinvia l'elaborazione delle richieste, consentendo alle applicazioni eseguite a velocità diverse di comunicare in modo efficace. Un approccio basato sul buffering impiega una coda o un flusso per l'accettazione dei messaggi dai produttori. I messaggi vengono letti ed elaborati dai consumatori e ciò consente ai messaggi di essere eseguiti alla velocità che soddisfa i requisiti aziendali del consumatore stesso.
-
Amazon Simple Queue Service (AmazonSQS)
è un servizio gestito che fornisce code che consentono a un singolo consumatore di leggere singoli messaggi. -
Amazon Kinesis
offre un flusso che consente a più consumatori di leggere gli stessi messaggi.
-
-
Analizza la domanda complessiva, la velocità di modifica e il tempo di risposta richiesto per determinare le dimensioni della limitazione (della larghezza di banda della rete) o del buffer richiesto.
Risorse
Documenti correlati:
Video correlati: