View a markdown version of this page

KCL-Konfigurationen - Amazon Kinesis Data Streams

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.

KCL-Konfigurationen

Sie können Konfigurationseigenschaften festlegen, um die Funktionen der Kinesis Client Library an Ihre spezifischen Anforderungen anzupassen. In der folgenden Tabelle werden Konfigurationseigenschaften und Klassen beschrieben.

Wichtig

In KCL 3.x zielt der Load-Balancing-Algorithmus darauf ab, eine gleichmäßige CPU-Auslastung aller Worker zu erreichen und nicht die gleiche Anzahl von Leases pro Worker. Wenn Sie den maxLeasesForWorker Wert zu niedrig einstellen, kann KCL möglicherweise nicht in der Lage sein, die Arbeitslast effektiv auszugleichen. Wenn Sie die maxLeasesForWorker Konfiguration verwenden, sollten Sie erwägen, ihren Wert zu erhöhen, um die bestmögliche Lastverteilung zu ermöglichen.

Diese Tabelle zeigt die Konfigurationseigenschaften für KCL
Konfigurationseigenschaft Klasse „Konfiguration“ Description Standardwert
applicationName ConfigsBuilder Der Name für die KCL-Anwendung. Wird als Standard für tableName und consumerName verwendet. Nicht zutreffend
tableName ConfigsBuilder

Ermöglicht das Überschreiben des für die Lease-Tabelle von Amazon DynamoDB verwendeten Tabellennamens.

Nicht zutreffend
streamName ConfigsBuilder

Der Name des Streams, dessen Datensätze diese Anwendung verarbeitet.

Nicht zutreffend
workerIdentifier ConfigsBuilder

Eine eindeutige Kennung, die die Instanziierung des Anwendungsprozessors repräsentiert. Dieser Wert muss eindeutig sein.

Nicht zutreffend
failoverTimeMillis LeaseManagementConfig

Anzahl Millisekunden, nach deren Ablauf unterstellt werden kann, dass ein Lease-Eigentümer fehlgeschlagen ist. Bei Anwendungen mit einer großen Anzahl von Shards kann dieser Wert auf einen höheren Wert festgelegt werden, um die Anzahl der DynamoDB-IOPS zu reduzieren, die für die Nachverfolgung von Leases erforderlich sind.

10.000 (10 Sekunden)
shardSyncIntervalMillis LeaseManagementConfig

Die Zeit zwischen Shard-Synchronisierungsaufrufen.

60.000 (60 Sekunden)
cleanupLeasesUponShardCompletion LeaseManagementConfig

Wenn diese Option aktiviert ist, werden Leases entfernt, sobald die untergeordneten Leases die Verarbeitung gestartet haben.

TRUE
ignoreUnexpectedChildShards LeaseManagementConfig

Wenn diese Option aktiviert ist, werden untergeordnete Shards, die einen offenen Shard aufweisen, ignoriert. Dies gilt hauptsächlich für DynamoDB Streams.

FALSE
maxLeasesForWorker LeaseManagementConfig

Die maximale Anzahl von Leasingverträgen, die ein einzelner Arbeitnehmer annehmen sollte. Ein zu niedriger Wert kann zu Datenverlust führen, wenn Mitarbeiter nicht alle Shards verarbeiten können, und zu einer suboptimalen Leasingzuweisung zwischen den Mitarbeitern führen. Berücksichtigen Sie bei der Konfiguration die Gesamtzahl der Shards, die Anzahl der Mitarbeiter und die Verarbeitungskapazität der Mitarbeiter.

Unbegrenzt
maxLeaseRenewalThreads LeaseManagementConfig

Steuert die Größe des Lease-Renewer-Thread-Pools. Dieser Pool muss größer sein, wenn die Anwendung mehr Leases annehmen kann.

20
billingMode LeaseManagementConfig

Bestimmt den Kapazitätsmodus der in DynamoDB erstellten Leasetabelle. Es gibt zwei Optionen: den On-Demand-Modus (PAY_PER_REQUEST) und den Bereitstellungsmodus. Wir empfehlen, die Standardeinstellung des On-Demand-Modus zu verwenden, da dieser automatisch an Ihre Arbeitslast angepasst wird, ohne dass eine Kapazitätsplanung erforderlich ist.

PAY_PER_REQUEST (On-Demand-Modus)
initialLeaseTableReadCapacity LeaseManagementConfig Die DynamoDB-Lesekapazität, die verwendet wird, wenn die Kinesis-Clientbibliothek eine neue DynamoDB-Leasetabelle mit bereitgestelltem Kapazitätsmodus erstellen muss. Sie können diese Konfiguration ignorieren, wenn Sie in der Konfiguration den standardmäßigen On-Demand-Kapazitätsmodus verwenden. billingMode 10
initialLeaseTableWriteCapacity LeaseManagementConfig Die DynamoDB-Lesekapazität, die verwendet wird, wenn die Kinesis Client Library eine neue DynamoDB-Leasetabelle erstellen muss. Sie können diese Konfiguration ignorieren, wenn Sie in der Konfiguration den standardmäßigen On-Demand-Kapazitätsmodus verwenden. billingMode 10
initialPositionInStreamExtended LeaseManagementConfig

Die ursprüngliche Position im Stream, an der die Anwendung starten soll. Dieser Wert wird nur im Rahmen der Lease-Erstellung verwendet.

InitialPositionInStream.TRIM_HORIZON

reBalanceThresholdPercentage LeaseManagementConfig

Ein Prozentwert, der festlegt, wann der Load-Balancing-Algorithmus die Neuzuweisung von Shards zwischen Arbeitern in Betracht ziehen sollte.

Dies ist eine neue Konfiguration, die in KCL 3.x eingeführt wurde.

10
dampeningPercentage LeaseManagementConfig

Ein Prozentwert, der verwendet wird, um die Menge der Last zu dämpfen, die von der überlasteten Arbeitskraft bei einem einzigen Auswuchtvorgang wegbewegt wird.

Dies ist eine neue Konfiguration, die in KCL 3.x eingeführt wurde.

60
allowThroughputOvershoot LeaseManagementConfig

Legt fest, ob der überlastete Worker trotzdem einen zusätzlichen Leasingvertrag abwickeln muss, auch wenn dadurch der Gesamtdurchsatz des Leasingdurchsatzes den gewünschten Durchsatz übersteigt.

Dies ist eine neue Konfiguration, die in KCL 3.x eingeführt wurde.

TRUE
disableWorkerMetrics LeaseManagementConfig

Legt fest, ob KCL bei der Neuzuweisung von Leasings und beim Lastenausgleich die Ressourcenmetriken von Workern (wie z. B. die CPU-Auslastung) ignorieren soll. Setzen Sie diesen Wert auf TRUE, wenn Sie verhindern möchten, dass KCL basierend auf der CPU-Auslastung einen Lastenausgleich durchführt.

Dies ist eine neue Konfiguration, die in KCL 3.x eingeführt wurde.

FALSE
maxThroughputPerHostKBps LeaseManagementConfig

Höhe des maximalen Durchsatzes, der einer Arbeitskraft während der Leasingzuweisung zugewiesen werden soll.

Dies ist eine neue Konfiguration, die in KCL 3.x eingeführt wurde.

Unbegrenzt
isGracefulLeaseHandoffEnabled LeaseManagementConfig

Steuert das Verhalten bei der Leasingübergabe zwischen Arbeitern. Wenn der Wert auf „true“ gesetzt ist, versucht KCL, Leasingverträge ordnungsgemäß zu übertragen, indem dem Shard RecordProcessor genügend Zeit eingeräumt wird, die Bearbeitung abzuschließen, bevor der Leasingvertrag an einen anderen Mitarbeiter weitergegeben wird. Dies kann dazu beitragen, die Datenintegrität und reibungslose Übergänge zu gewährleisten, kann jedoch die Übergabezeit verlängern.

Wenn der Wert auf „False“ gesetzt ist, wird der Mietvertrag sofort vergeben, ohne dass darauf gewartet werden RecordProcessor muss, dass der Vertrag ordnungsgemäß geschlossen wird. Dies kann zu schnelleren Übergaben führen, kann jedoch zu einer unvollständigen Bearbeitung führen.

Hinweis: Checkpointing muss innerhalb der shutdownRequested () -Methode von implementiert werden, um von der Funktion „Graceful Lease Handoff“ RecordProcessor zu profitieren.

Dies ist eine neue Konfiguration, die in KCL 3.x eingeführt wurde.

TRUE
gracefulLeaseHandoffTimeoutMillis LeaseManagementConfig

Gibt die Mindestzeit (in Millisekunden) an, nach der auf das ordnungsgemäße Herunterfahren der aktuellen Shards gewartet werden muss, bevor das RecordProcessor Leasing gewaltsam an den nächsten Eigentümer übertragen wird.

Wenn Ihre ProcessRecords-Methode in der Regel länger als der Standardwert ausgeführt wird, sollten Sie erwägen, diese Einstellung zu erhöhen. Dadurch wird sichergestellt, dass ausreichend Zeit zur Verfügung steht, um die Bearbeitung abzuschließen, bevor die Leasingübertragung erfolgt. RecordProcessor

Dies ist eine neue Konfiguration, die in KCL 3.x eingeführt wurde.

30.000 (30 Sekunden)
maxRecords PollingConfig

Ermöglicht das Einstellen der maximalen Anzahl an Datensätzen, die Kinesis zurückgibt.

10.000
retryGetRecordsInSeconds PollingConfig

Konfiguriert die Verzögerung zwischen GetRecords Fehlversuchen.

Keine
maxGetRecordsThreadPool PollingConfig

Die verwendete Threadpoolgröße für GetRecords.

Keine
idleTimeBetweenReadsInMillis PollingConfig

Legt fest, wie lange KCL zwischen GetRecords Aufrufen wartet, um die Daten aus Datenströmen abzufragen. Die Einheit ist Millisekunden.

1.500
callProcessRecordsEvenForEmptyRecordList ProcessorConfig

Wenn diese Option aktiviert ist, wird der Datensatzprozessor aufgerufen, auch wenn Kinesis keine Datensätze bereitgestellt hat.

FALSE
parentShardPollIntervalMillis CoordinatorConfig

Gibt an, wie oft ein Datensatzprozessor abfragen soll, ob der übergeordnete Shard abgeschlossen wurde. Die Einheit ist Millisekunden.

10.000 (10 Sekunden)
skipShardSyncAtWorkerInitializationIfLeaseExist CoordinatorConfig

Synchronisieren der Shard-Daten deaktivieren, wenn die Lease-Tabelle Leases enthält.

FALSE

shardPrioritization CoordinatorConfig

Welche Shard-Priorisierung verwendet werden soll.

NoOpShardPrioritization

ClientVersionConfig CoordinatorConfig

Legt fest, in welchem KCL-Versionskompatibilitätsmodus die Anwendung ausgeführt wird. Diese Konfiguration ist nur für die Migration von früheren KCL-Versionen vorgesehen. Bei der Migration zu 3.x müssen Sie diese Konfiguration auf setzen. CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X Sie können diese Konfiguration entfernen, wenn Sie die Migration abgeschlossen haben.

CLIENT_VERSION_CONFIG_3X
taskBackoffTimeMillis LifecycleConfig

Die Wartezeit für die Wiederholung fehlgeschlagener KCL-Aufgaben. Die Einheit ist Millisekunden.

500 (0,5 Sekunden)
logWarningForTaskAfterMillis LifecycleConfig

Wartezeit, bevor eine Warnung protokolliert wird, wenn eine Aufgabe nicht abgeschlossen wurde.

Keine
listShardsBackoffTimeInMillis RetrievalConfig Die Anzahl der zwischen Aufrufen von ListShards abzuwartenden Millisekunden, wenn es zu Fehlern kommt. Die Einheit ist Millisekunden. 1.500 (1,5 Sekunden)
maxListShardsRetryAttempts RetrievalConfig Die maximale Anzahl Wiederholungsversuche durch ListShards, bevor abgebrochen wird. 50
metricsBufferTimeMillis MetricsConfig

Gibt die maximale Dauer (in Millisekunden) an, für die Metriken gepuffert werden, bevor sie veröffentlicht werden. CloudWatch

10.000 (10 Sekunden)
metricsMaxQueueSize MetricsConfig

Gibt die maximale Anzahl von Metriken an, die vor der Veröffentlichung gepuffert werden sollen CloudWatch.

10.000
metricsLevel MetricsConfig

Gibt die Granularitätsstufe der CloudWatch Metriken an, die aktiviert und veröffentlicht werden sollen.

Mögliche Werte: NONE, SUMMARY, DETAILLIERT.

MetricsLevel.DETAILED

metricsEnabledDimensions MetricsConfig

Steuert die zulässigen Dimensionen für CloudWatch Metriken.

Alle Dimensionen

Nicht mehr verfügbare Konfigurationen in KCL 3.x

Die folgenden Konfigurationseigenschaften sind in KCL 3.x nicht mehr verfügbar:

Die Tabelle zeigt nicht mehr verfügbare Konfigurationseigenschaften für KCL 3.x
Konfigurationseigenschaft Klasse „Konfiguration“ Description
maxLeasesToStealAtOneTime LeaseManagementConfig

Die maximale Anzahl der Leases, die eine Anwendung zu einem gegebenen Zeitpunkt zu stehlen versuchen sollte. KCL 3.x ignoriert diese Konfiguration und weist Leasingverträge auf der Grundlage der Ressourcenauslastung der Mitarbeiter neu zu.

enablePriorityLeaseAssignment LeaseManagementConfig

Steuert, ob Mitarbeiter sehr abgelaufene Leasingverträge (Leasingverträge werden für die dreifache Failover-Zeit nicht verlängert) und neuen Shard-Leasingverträgen Vorrang einräumen sollten, unabhängig von der Anzahl der angestrebten Leasingverträge, aber unter Einhaltung der maximalen Leasinglimits. KCL 3.x ignoriert diese Konfiguration und verteilt abgelaufene Leasingverträge immer auf alle Mitarbeiter.

Wichtig

Während der Migration von früheren KCL-Versionen zu KCL 3.x müssen Sie weiterhin über die Eigenschaften der eingestellten Konfiguration verfügen. Während der Migration startet der KCL-Worker zunächst im KCL 2.x-kompatiblen Modus und wechselt in den KCL 3.x-Funktionsmodus, wenn er feststellt, dass alle KCL-Worker der Anwendung bereit sind, KCL 3.x auszuführen. Diese eingestellten Konfigurationen werden benötigt, während die KCL-Worker den KCL 2.x-kompatiblen Modus ausführen.