Crea uno stream utilizzando il APIs - Flusso di dati Amazon Kinesis

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à.

Crea uno stream utilizzando il APIs

Utilizzare la procedura seguente per creare il tuo flusso di dati Kinesis.

Crea il client Kinesis Data Streams

Prima di utilizzare i flusso di dati Kinesis, è necessario creare un oggetto client. Il seguente codice Java avvia un'istanza da un generatore client e la utilizza per impostare la regione, le credenziali e la configurazione del client. Quindi crea un oggetto client.

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

Per ulteriori informazioni, consulta Regioni ed endpoint del flusso di dati Kinesis nella Riferimenti generali di AWS.

Crea lo stream

Ora che hai creato il tuo client Kinesis Data Streams, puoi creare uno stream utilizzando la console o a livello di codice. Per creare uno stream a livello di codice, crea un'istanza di un CreateStreamRequest oggetto e specifica un nome per lo stream. Se desideri utilizzare la modalità provisioned, specifica il numero di shard da utilizzare per lo stream.

  • On demand:

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

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

Il nome del flusso identifica il flusso. Il nome si riferisce all' AWS account utilizzato dall'applicazione. È inoltre definito in base alla regione. Cioè, due stream in due AWS account diversi possono avere lo stesso nome e due stream nello stesso AWS account ma in due regioni diverse possono avere lo stesso nome, ma non due stream sullo stesso account e nella stessa regione.

La velocità effettiva dello stream è una funzione del numero di shard. Per una maggiore velocità effettiva assegnata, sono necessari più shard. Un numero maggiore di shard aumenta anche il costo AWS addebitato per lo streaming. Per ulteriori informazioni su come calcolare il numero appropriato di shard per la tua applicazione, vedere Scegli la modalità di capacità del flusso di dati.

Dopo aver configurato l'createStreamRequestoggetto, create uno stream chiamando il createStream metodo sul client. Dopo la chiamata a createStream, attendere che il flusso raggiunga lo stato ACTIVE prima di eseguire qualunque operazione sul flusso. Per controllare lo stato del flusso, chiamare il metodo describeStream. Tuttavia, describeStream genera un'eccezione se il flusso non esiste. Pertanto, racchiudere la chiamata describeStream in un blocco try/catch.

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" ); }