Erstellen Sie einen Stream mit dem APIs - 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.

Erstellen Sie einen Stream mit dem APIs

Führen Sie die folgenden Schritte aus, um Ihren Kinesis-Datenstrom zu erstellen.

Den Kinesis Data Streams Streams-Client erstellen

Bevor Sie mit Kinesis-Datenströmen arbeiten können, müssen Sie ein Client-Objekt erstellen. Der folgende Java-Code instanziiert einen Client-Builder und verwendet ihn zum Festlegen der Region, der Anmeldeinformationen und der Client-Konfiguration. Anschließend erstellt er ein Client-Objekt.

AmazonKinesisClientBuilder clientBuilder = AmazonKinesisClientBuilder.standard(); clientBuilder.setRegion(regionName); clientBuilder.setCredentials(credentialsProvider); clientBuilder.setClientConfiguration(config); AmazonKinesis client = clientBuilder.build();

Weitere Informationen finden Sie unter Regionen und Endpunkte der Kinesis Data Streams im Allgemeine AWS-Referenz.

Erstellen Sie den Stream

Nachdem Sie Ihren Kinesis Data Streams Streams-Client erstellt haben, können Sie einen Stream mithilfe der Konsole oder programmgesteuert erstellen. Um einen Stream programmgesteuert zu erstellen, instanziieren Sie ein CreateStreamRequest Objekt und geben Sie einen Namen für den Stream an. Wenn Sie den Bereitstellungsmodus verwenden möchten, geben Sie die Anzahl der Shards an, die der Stream verwenden soll.

  • On-Demand-Modus:

    CreateStreamRequest createStreamRequest = new CreateStreamRequest(); createStreamRequest.setStreamName( myStreamName );
  • Bereitgestellt:

    CreateStreamRequest createStreamRequest = new CreateStreamRequest(); createStreamRequest.setStreamName( myStreamName ); createStreamRequest.setShardCount( myStreamSize );

Der Streamname bezeichnet den Stream. Der Name ist auf das AWS Konto beschränkt, das von der Anwendung verwendet wird. Er ist auch nach Region beschränkt. Das heißt, zwei Streams in zwei verschiedenen AWS Konten können denselben Namen haben, und zwei Streams in demselben AWS Konto, aber in zwei verschiedenen Regionen können denselben Namen haben, aber nicht zwei Streams auf demselben Konto und in derselben Region.

Der Durchsatz des Streams hängt von der Anzahl der Shards ab. Für einen höheren bereitgestellten Durchsatz benötigen Sie mehr Shards. Mehr Shards erhöhen auch die Kosten, die für den Stream AWS anfallen. Weitere Informationen zum Berechnen einer ausreichenden Anzahl von Shards für Ihre Anwendung finden Sie unter Wählen Sie den Datenstream-Kapazitätsmodus.

Nachdem Sie das createStreamRequest Objekt konfiguriert haben, erstellen Sie einen Stream, indem Sie die createStream Methode auf dem Client aufrufen. Warten Sie nach dem Aufrufen von createStream, bis der Stream den Status ACTIVE erreicht hat, bevor Sie eine Operation auf dem Stream ausführen. Rufen Sie die describeStream-Methode auf, um den Status des Streams zu überprüfen. Allerdings löst describeStream eine Ausnahme aus, wenn der Stream nicht existiert. Aus diesem Grund müssen Sie den Aufruf describeStream in einen try/catch-Block einschließen.

client.createStream( createStreamRequest ); DescribeStreamRequest describeStreamRequest = new DescribeStreamRequest(); describeStreamRequest.setStreamName( myStreamName ); long startTime = System.currentTimeMillis(); long endTime = startTime + ( 10 * 60 * 1000 ); while ( System.currentTimeMillis() < endTime ) { try { Thread.sleep(20 * 1000); } catch ( Exception e ) {} try { DescribeStreamResult describeStreamResponse = client.describeStream( describeStreamRequest ); String streamStatus = describeStreamResponse.getStreamDescription().getStreamStatus(); if ( streamStatus.equals( "ACTIVE" ) ) { break; } // // sleep for one second // try { Thread.sleep( 1000 ); } catch ( Exception e ) {} } catch ( ResourceNotFoundException e ) {} } if ( System.currentTimeMillis() >= endTime ) { throw new RuntimeException( "Stream " + myStreamName + " never went active" ); }