AWS Kinesis 如何确认已收到事件?
How Does AWS Kinesis confirm that an event has been received?
我们在流处理项目中使用 AWS Kinesis,我想知道它如何确认或通知已收到消息,此外,是否存在配置它的方法。我在他们的文档中找不到任何内容。
由于 AWS Kinesis 基于 Kafka 分支,它可能是配置此行为的一种方式。
Kinesis 是无服务器的,通过 HTTP 公开,不同于 Kafka 和 AWS MSK 使用基于 TCP 的 Kafka 协议。
记录通过 PutRecord or PutRecords API calls and received via GetRecords API 调用发送。
对于 数据生产者,您检查 API 调用的响应以确认记录已添加到流中,来自 AWS docs 的 PutRecords 的示例响应.
HTTP/1.1 200 OK
x-amzn-RequestId: <RequestId>
Content-Type: application/x-amz-json-1.1
Content-Length: <PayloadSizeBytes>
Date: <Date>
{
"FailedRecordCount": 2,
"Records": [
{
"SequenceNumber": "49543463076548007577105092703039560359975228518395012686",
"ShardId": "shardId-000000000000"
},
{
"ErrorCode": "ProvisionedThroughputExceededException",
"ErrorMessage": "Rate exceeded for shard shardId-000000000001 in stream exampleStreamName under account 111111111111."
},
{
"ErrorCode": "InternalFailure",
"ErrorMessage": "Internal service failure."
}
]
}
对于数据消费者,您不会通知流已收到消息,所有消费者都可以使用记录,直到它们过期,它适用于拉模型。
消费者负责interact over the shards并接收新消息。
如果您想构建自定义消费者,AWS 有一个 client library (KCL) 可以为您处理流处理。
当您调用 PutRecord API, you will either receive an error or a response with ShardId
and SequenceNumber
fields that tell you where the message was stored. The PutRecords API 时类似,只是响应会为您提供您写入的每条记录的状态,并且 批处理中的一些记录可能失败而其他人成功。
如果这不能回答您的问题,请完整地描述您如何写信给 Kinesis,以及您希望看到的通知内容。
我们在流处理项目中使用 AWS Kinesis,我想知道它如何确认或通知已收到消息,此外,是否存在配置它的方法。我在他们的文档中找不到任何内容。
由于 AWS Kinesis 基于 Kafka 分支,它可能是配置此行为的一种方式。
Kinesis 是无服务器的,通过 HTTP 公开,不同于 Kafka 和 AWS MSK 使用基于 TCP 的 Kafka 协议。
记录通过 PutRecord or PutRecords API calls and received via GetRecords API 调用发送。
对于 数据生产者,您检查 API 调用的响应以确认记录已添加到流中,来自 AWS docs 的 PutRecords 的示例响应.
HTTP/1.1 200 OK
x-amzn-RequestId: <RequestId>
Content-Type: application/x-amz-json-1.1
Content-Length: <PayloadSizeBytes>
Date: <Date>
{
"FailedRecordCount": 2,
"Records": [
{
"SequenceNumber": "49543463076548007577105092703039560359975228518395012686",
"ShardId": "shardId-000000000000"
},
{
"ErrorCode": "ProvisionedThroughputExceededException",
"ErrorMessage": "Rate exceeded for shard shardId-000000000001 in stream exampleStreamName under account 111111111111."
},
{
"ErrorCode": "InternalFailure",
"ErrorMessage": "Internal service failure."
}
]
}
对于数据消费者,您不会通知流已收到消息,所有消费者都可以使用记录,直到它们过期,它适用于拉模型。
消费者负责interact over the shards并接收新消息。
如果您想构建自定义消费者,AWS 有一个 client library (KCL) 可以为您处理流处理。
当您调用 PutRecord API, you will either receive an error or a response with ShardId
and SequenceNumber
fields that tell you where the message was stored. The PutRecords API 时类似,只是响应会为您提供您写入的每条记录的状态,并且 批处理中的一些记录可能失败而其他人成功。
如果这不能回答您的问题,请完整地描述您如何写信给 Kinesis,以及您希望看到的通知内容。