

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Wiederholungsversuche bei der Nachrichtenzustellung Amazon SNS
<a name="sns-message-delivery-retries"></a>

Amazon SNS definiert eine *Zustellungsrichtlinie* für jedes Zustellungsprotokoll. Die Zustellungsrichtlinie definiert, wie Amazon SNS die Zustellung von Nachrichten bei serverseitigen Fehlern (wenn das den abonnierten Endpunkt hostenden System nicht verfügbar ist) wiederholt. Wenn die Zustellungsrichtlinie erschöpft ist, stoppt Amazon SNS den erneuten Versand und verwirft die Nachricht, es sei denn, dem Abonnement ist eine Warteschlange für unzustellbare Nachrichten angehängt. Weitere Informationen finden Sie unter [Amazon SNS SNS-Warteschlangen für unzustellbare Briefe](sns-dead-letter-queues.md).

## Zustellungsprotokolle und -richtlinien
<a name="delivery-policies-for-protocols"></a>

**Anmerkung**  
Mit Ausnahme von HTTP/S, you can't change Amazon SNS-defined delivery policies. Only HTTP/S unterstützt benutzerdefinierte Richtlinien. Siehe [Erstellung HTTP/S einer Lieferrichtlinie](#creating-delivery-policy).
Amazon SNS wendet Jittering bei Zustellungswiederholungen an. Weitere Informationen finden Sie im Beitrag [Exponential Backoff and Jitter](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/) im *AWS Architecture Blog*.
**Die Gesamtdauer für den erneuten Versuch einer Richtlinie für einen HTTP/S Endpunkt darf 3.600 Sekunden nicht überschreiten. Dies ist ein hartes Limit, das nicht erhöht werden kann.**



- **AWS verwaltete Endpunkte**
  - **Zustellungsprotokolle:**
    - ¹
    - AWS Lambda
    - Amazon SQS
  - **Phase „Sofortiger Wiederholungsversuch (keine Verzögerung)“:** 3-mal, ohne Verzögerung
  - **Phase „Pre-Backoff“:** 2-mal, mit 1 Sekunde Verzögerung
  - **Phase „Backoff“:** 10-mal, mit exponentiellem Backoff von 1 Sekunde bis 20 Sekunden
  - **Phase „Post-Backoff“:** 100.000-mal, mit 20 Sekunden Verzögerung
  - **Gesamtzahl der Versuche:** 100.015-mal, über 23 Tage

- **Vom Kunden verwaltete Endpunkte**
  - **Zustellungsprotokolle:**
    - SMTP
    - SMS
    - Mobile Push
  - **Phase „Sofortiger Wiederholungsversuch (keine Verzögerung)“:** 0-mal, ohne Verzögerung
  - **Phase „Pre-Backoff“:** 2-mal, mit 10 Sekunden Verzögerung
  - **Phase „Backoff“:** 10-mal, mit exponentiellem Backoff von 10 Sekunden bis 600 Sekunden (10 Minuten)
  - **Phase „Post-Backoff“:** 38-Mal, mit 600 Sekunden (10 Minuten) Verzögerung
  - **Gesamtzahl der Versuche:** 50 Versuche, über 6 Stunden



¹ Für Drosselungsfehler mit dem Firehose-Protokoll verwendet Amazon SNS dieselben Lieferrichtlinien wie für vom Kunden verwaltete Endgeräte.

## Stufen von Zustellungsrichtlinien
<a name="delivery-policy-stages"></a>

Das folgende Diagramm zeigt die Phasen einer Zustellungsrichtlinie.

![Ein X-Y-Achsendiagramm, das Zeit als X-Wert und Erster Zustellversuch als Y-Wert anzeigt. Die Lieferrichtlinie beginnt mit der Phase des sofortigen erneuten Versuchs auf der Y-Achse, gefolgt von der Phase vor dem Backoff, der Backoff-Phase und der Phase nach dem Backoff.](http://docs.aws.amazon.com/de_de/sns/latest/dg/images/sns-delivery-policy-phases.png)


Jede Zustellungsrichtlinie umfasst vier Phasen.

1. Phase der **sofortigen Wiederholung (ohne Verzögerung) — Diese Phase findet** unmittelbar nach dem ersten Zustellungsversuch statt. Es gibt keine Verzögerung zwischen den Wiederholungen in dieser Phase.

1. Phase **vor dem Backoff — Diese Phase** folgt auf die Phase der sofortigen Wiederholung. Amazon SNS verwendet diese Phase für eine Reihe von Wiederholungsversuchen, bevor eine Backoff-Funktion angewendet wird. Diese Phase gibt die Anzahl der Wiederholungsversuche und die Verzögerung dazwischen an.

1. **Backoff-Phase — In dieser Phase** wird die Verzögerung zwischen Wiederholungsversuchen mithilfe der Retry-Backoff-Funktion gesteuert. Diese Phase legt eine Mindestverzögerung, eine Maximalverzögerung und eine retry-backoff-Funktion fest, die definiert, wie schnell die Verzögerung vom Mindest- zum Maximalwert steigt. Die backoff-Funktion kann arithmetisch, exponentiell, geometrisch oder linear sein.

1. **Post-Backoff-Phase — Diese Phase folgt auf die Backoff-Phase**. Sie gibt die Anzahl der Wiederholungsversuche und die Verzögerung dazwischen an. Dies ist die letzte Phase.

## Erstellung HTTP/S einer Lieferrichtlinie
<a name="creating-delivery-policy"></a>

**Sie können mithilfe einer Zustellungsrichtlinie mit vier Phasen definieren, wie Amazon SNS die Nachrichtenzustellung an HTTP/S Endpunkte wiederholt: *verzögerungsfrei, vor dem Backoff, dem Backoff* *und dem Post-Backoff*.** Diese Richtlinie ermöglicht es Ihnen, die Standardeinstellungen für Wiederholungsversuche zu überschreiben und sie an die Kapazität Ihres HTTP-Servers anzupassen.

Sie können Ihre HTTP/S Lieferrichtlinie entweder auf **Themen** - oder **Abonnementebene** als JSON-Objekt definieren:
+ **Richtlinie auf Themenebene** — Gilt für alle HTTP/S Abonnements, die mit dem Thema verknüpft sind. Verwenden Sie die [https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html)API-Aktion [https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html](https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html)oder, um diese Richtlinie festzulegen.
+ **Richtlinie auf Abonnementebene** — Gilt nur für ein bestimmtes Abonnement. Verwenden Sie die [https://docs.aws.amazon.com/sns/latest/api/API_SetSubscriptionAttributes.html](https://docs.aws.amazon.com/sns/latest/api/API_SetSubscriptionAttributes.html)API-Aktion [https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html)oder, um diese Richtlinie festzulegen.

Alternativ können Sie die [AWS::SNS::Subscription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html)Ressource auch in Ihren CloudFormation Vorlagen verwenden.

Sie sollten Ihre Lieferrichtlinien an die Kapazität Ihres HTTP/S Servers anpassen:
+ **Ein Server für alle Abonnements** — Wenn alle HTTP/S Abonnements in einem Thema denselben Server verwenden, legen Sie die Übermittlungsrichtlinie als Themenattribut fest, um die Konsistenz aller Abonnements sicherzustellen.
+ **Verschiedene Server für Abonnements** — Wenn Abonnements auf unterschiedliche Server abzielen, erstellen Sie für jedes Abonnement eine eigene Bereitstellungsrichtlinie, die auf die Kapazität des jeweiligen Servers zugeschnitten ist.

Sie können auch den `Content-Type` Header in der Anforderungsrichtlinie festlegen, um den Medientyp der Benachrichtigung anzugeben. Standardmäßig sendet Amazon SNS alle Benachrichtigungen an HTTP/S Endpunkte, deren Inhaltstyp auf eingestellt ist. `text/plain; charset=UTF-8` Sie können diese Standardeinstellung jedoch mithilfe des [`headerContentType`](#header-content-type)Felds in der Anforderungsrichtlinie überschreiben.

Das folgende JSON-Objekt definiert eine Zustellungsrichtlinie mit Wiederholungsversuchen, die in vier Phasen unterteilt sind:

1. **Phase ohne Verzögerung** — Versuchen Sie es sofort dreimal erneut.

1. **Pre-Backoff-Phase** — Versuchen Sie es zweimal mit einem Intervall von 1 Sekunde.

1. **Backoff-Phase** — Versuchen Sie es 10 Mal mit exponentiellen Verzögerungen zwischen 1 und 60 Sekunden.

1. Phase **nach der Backoff-Phase** — Versuchen Sie es 35 Mal mit einem festen Intervall von 60 Sekunden.

Amazon SNS unternimmt insgesamt **50 Versuche**, eine Nachricht zuzustellen, bevor sie verworfen wird. Um Nachrichten beizubehalten, die nach allen Wiederholungsversuchen nicht zugestellt werden können, konfigurieren Sie Ihr Abonnement so, dass unzustellbare Nachrichten in eine Warteschlange für unzustellbare Briefe (DLQ) verschoben werden. Weitere Informationen finden Sie unter [Amazon SNS SNS-Warteschlangen für unzustellbare Briefe](sns-dead-letter-queues.md).

Amazon SNS betrachtet alle 5XX-Fehler und die Fehler 429 (zu viele gesendete Anfragen) als wiederholbar. Diese Fehler unterliegen den Lieferrichtlinien. Alle anderen Fehler gelten als dauerhafte Fehler und es werden keine erneuten Versuche unternommen.

**Anmerkung**  
Diese Zustellungsrichtlinie verwendet die `maxReceivesPerSecond` Eigenschaft, um den Zustellungsverkehr auf durchschnittlich 10 Nachrichten pro Sekunde pro Abonnement zu drosseln. Dieser Mechanismus trägt zwar dazu bei, dass Ihr HTTP/S Endpunkt nicht durch hohen Traffic überlastet wird, ist jedoch darauf ausgelegt, eine durchschnittliche Zustellungsrate aufrechtzuerhalten und keine strikte Obergrenze durchzusetzen. Gelegentlich kann es zu Spitzenwerten des Lieferverkehrs kommen, die das angegebene Limit überschreiten, insbesondere wenn Ihre Veröffentlichungsrate deutlich über dem Drosselungslimit liegt.  
Wenn der (eingehende) Veröffentlichungsverkehr die Zustellungsrate (ausgehender Verkehr) überschreitet, kann dies zu einem Nachrichtenrückstand und einer höheren Zustellungslatenz führen. Um solche Probleme zu vermeiden, stellen Sie sicher, dass der `maxReceivesPerSecond` Wert den Kapazitäts- und HTTP/S Arbeitslastanforderungen Ihres Servers entspricht.

Das folgende Beispiel für eine Zustellungsrichtlinie setzt den Standard-Inhaltstyp für HTTP/S-Benachrichtigungen außer Kraft. `application/json`

```
{
    "healthyRetryPolicy": {
        "minDelayTarget": 1,
        "maxDelayTarget": 60,
        "numRetries": 50,
        "numNoDelayRetries": 3,
        "numMinDelayRetries": 2,
        "numMaxDelayRetries": 35,
        "backoffFunction": "exponential"
    },
    "throttlePolicy": {
        "maxReceivesPerSecond": 10
    },
    "requestPolicy": {
        "headerContentType": "application/json"
    }
}
```

**Die Zustellungsrichtlinie besteht aus einer **Wiederholungsrichtlinie, einer Drosselungsrichtlinie** **und einer Anforderungsrichtlinie**.** Insgesamt enthält eine Lieferrichtlinie **9 Attribute**.


| Richtlinie  | Description | Einschränkung | 
| --- | --- | --- | 
| minDelayTarget | Die Mindestverzögerung bei einem Wiederholungsversuch.**Einheit:** Sekunden | 1 bis zur Maximalverzögerung**Standard:** 20 | 
| maxDelayTarget | Die Maximalverzögerung bei einem Wiederholungsversuch.**Einheit:** Sekunden | Mindestverzögerung auf 3.600**Standard:** 20 | 
| numRetries | Die Gesamtzahl der Wiederholungsversuche, einschließlich sofortiger Wiederholungsversuche sowie, Pre-Backoff-, Backoff- und Post-Backoff-Wiederholungsversuchen. | 0 bis 100**Standard:** 3 | 
| numNoDelayRetries | Die Anzahl der Wiederholungen, die sofort durchgeführt werden sollen, ohne Verzögerung zwischen ihnen. | 0 oder höher**Standard: **0 | 
| numMinDelayRetries | Die Anzahl der Wiederholungsversuche in der Pre-Backoff-Phase mit der angegebenen Mindestverzögerung dazwischen. | 0 oder höher**Standard: **0 | 
| numMaxDelayRetries | Die Anzahl der Wiederholungsversuche in der Post-Backoff-Phase mit der Maximalverzögerung dazwischen. | 0 oder höher**Standard: **0 | 
| backoffFunction | Das Modell für Backoff zwischen Wiederholungsversuchen.  | Eine von vier Optionen:[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/sns/latest/dg/sns-message-delivery-retries.html)<br />**Standard:** linear | 
| maxReceivesPerSecond  | Die maximale durchschnittliche Anzahl von Nachrichtenzustellungen pro Sekunde pro Abonnement. | 1 oder höher**Standard:** Keine Drosselung (keine Begrenzung der Zustellungsrate) | 
| headerContentType  | Der Inhaltstyp der Benachrichtigung, die an HTTP/S-Endpunkte gesendet wird. | Wenn die Anforderungsrichtlinie nicht definiert ist, wird der Inhaltstyp standardmäßig auf `text/plain; charset=UTF-8` festgelegt.<br />Wenn die Bereitstellung von Rohnachrichten für ein Abonnement deaktiviert ist (Standard) oder wenn die Bereitstellungsrichtlinie auf Themenebene definiert ist, werden die Header-Inhaltstypen `application/json` und `text/plain` unterstützt.<br />Wenn die Bereitstellung von Rohnachrichten für ein Abonnement aktiviert ist, werden die folgenden Inhaltstypen unterstützt:[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/sns/latest/dg/sns-message-delivery-retries.html) | 

Amazon SNS verwendet die folgende Formel, um die Anzahl der Wiederholungsversuche in der Backoff-Phase zu berechnen:

```
numRetries - numNoDelayRetries - numMinDelayRetries - numMaxDelayRetries
```

Sie können die Häufigkeit der Wiederholungen während der Backoff-Phase mithilfe von drei Parametern steuern:
+ **`minDelayTarget`**— Legt die Verzögerung für den ersten Wiederholungsversuch in der Backoff-Phase fest.
+ **`maxDelayTarget`**— Legt die Verzögerung für den letzten Wiederholungsversuch in der Backoff-Phase fest.
+ **`backoffFunction`**— Bestimmt den Algorithmus, den Amazon SNS verwendet, um die Verzögerungen für alle Wiederholungsversuche zwischen dem ersten und dem letzten Versuch zu berechnen. Sie können aus vier verfügbaren Wiederholungs-Backoff-Funktionen wählen.

Das folgende Diagramm zeigt, wie sich verschiedene Backoff-Funktionen auf die Verzögerungen zwischen Wiederholungsversuchen während der Backoff-Phase auswirken. **Die für dieses Beispiel verwendete Zustellungsrichtlinie umfasst die folgenden Einstellungen: **insgesamt 10 Wiederholungen**, eine **Mindestverzögerung von 5 Sekunden und eine maximale Verzögerung von 260 Sekunden**.**
+ Die **vertikale Achse** zeigt die Verzögerung (in Sekunden) für jeden Wiederholungsversuch.
+ Die **horizontale Achse** stellt die Wiederholungssequenz dar, die vom ersten bis zum zehnten Versuch reicht.

![Das Diagramm zeigt anhand von vier Backoff-Funktionen, nämlich exponentiell, arithmetisch, linear und geometrisch, wie sich die Verzögerungen bei Wiederholungsversuchen über 10 Versuche entwickeln. Jede farbige Linie steht für das Verzögerungsmuster einer Funktion: Exponentiell: Steigt schnell an, wobei die maximale Verzögerung am schnellsten erreicht wird, Linear: Steigt mit jeder Wiederholung stetig an, Arithmetisch und Geometrisch: Zeigt moderate Zunahmen an, steiler als linear, aber weniger schnell als exponentiell. Alle Zeilen beginnen in der Nähe der Mindestverzögerung von 5 Sekunden und nähern sich bei der zehnten Wiederholung der maximalen Verzögerung von 260 Sekunden.](http://docs.aws.amazon.com/de_de/sns/latest/dg/images/backoff-graph.png)
