Я использую пакетный режим для извлечения записей из потока кинезиса. Мы используем пружинный переплет Kinesis.
В большинстве случаев мы не можем получать сообщения из потока. Только несколько раз мы можем извлекать сообщения из потока.
Мой конфиг выглядит ниже
Мой конфиг
spring:
cloud:
stream:
kinesis:
binder:
locks:
leaseDuration: 30
readCapacity: 1
writeCapacity: 1
checkpoint:
readCapacity: 1
writeCapacity: 1
bindings:
InStreamGroupOne:
consumer:
listenerMode: batch
idleBetweenPolls: 30000
recordsLimit: 5000
consumer-backoff: 1000
bindings:
InStreamGroupOne:
group: in-stream-group
destination: stream-1
content-type: application/json
OutboundStreamOne:
destination: stream-2
content-type: application/json
OutboundStreamTwo:
destination: stream-3
content-type: application/json
OutboundStreamThree:
destination: stream-4
content-type: application/json
Когда я включаю ведение журнала отладки, я мог видеть это исключение
Received error response: com.amazonaws.services.dynamodbv2.model.ProvisionedThroughputExceededException: The level of configured provisioned throughput for the table was exceeded. Consider increasing your provisioning level with the UpdateTable API. (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ProvisionedThroughputExceededException;
Я попытался уменьшить размер пакета до 150 и idleBetweenPools до 1 секунды. Я также обновил readCapacity и writeCapacity до 10. Но та же ошибка.
Из консоли AWS я мог видеть, что SpringIntegrationLockRegistry превысил порог чтения.
Не могли бы вы помочь нам понять, что не так.
Работает несколько раз и не работает некоторое время.