List of usage examples for com.amazonaws.services.kinesis AmazonKinesisClient putRecord
@Override
public PutRecordResult putRecord(PutRecordRequest request)
Writes a single data record into an Amazon Kinesis data stream.
From source file:com.mh2c.LogGenerator.java
License:Apache License
/** * Generates log lines and sends them to Kinesis. * * @param streamName Kinesis stream name * @param recsPerSecond number of records to send each second * @param numRecords total number of records to send *//*from w ww . ja v a 2 s .c o m*/ public void generate(String streamName, int recsPerSecond, int numRecords) throws InterruptedException { AmazonKinesisClient client = new AmazonKinesisClient(); int numPasses = (numRecords + recsPerSecond - 1) / recsPerSecond; int recordsLeft = numRecords; for (int i = 0; i < numPasses; i++) { int numToGenerate = Math.min(recordsLeft, recsPerSecond); for (int j = 0; j < numToGenerate; j++) { String logLine = generateLogLine(); PutRecordRequest request = new PutRecordRequest().withStreamName(streamName) .withPartitionKey(PARTITION_KEY) .withData(ByteBuffer.wrap(logLine.getBytes(StandardCharsets.UTF_8))); PutRecordResult result = client.putRecord(request); System.out.println( String.format("Wrote to shard %s as %s", result.getShardId(), result.getSequenceNumber())); } recordsLeft -= numToGenerate; if (recordsLeft > 0) { Thread.sleep(1000L); } } }