- Kinesis Data Stream = KDS
- Kinesis Data Firehose = KDF
- Kinesis Data Analytics = KDA
- Kinesis Producer Library=KPL
- Kinesis Consumer Library=KCL
KDF vs KDS
- KDS=realtime, KDF=near-real-time。
- KDS&KDF最大消息=1MB, SQS最大消息=256KB,Kafka最大消息=15MB。
- KDS支持排序,SQS只有FIFO队列支持排序,普通SQS不支持。
- KDS 写入消息偏慢:1. 基于吞吐量优化消息生产者,2. 基于吞吐量优化service limit。
- KDS的destination包括KDF,KDA和Lambda。
- KPL对KDS读写,KCL是KDS的消费者,Kinesis agent写入KDF。
KDF
- KDF+Amazon Opensearch+Kibana=near-real-time analytics。
- KDF有Opensearch、 S3、Redshift作为destination。KDA也可以分析KDF数据流。
- KDF data latency = 1min
- KDF改善性能,调整buffer size/buffer intervals。
KDS
- KDS重复数据:1. Producer有网络延迟,2. Shards、Record Processors有增减。
- 由于网络等不可抗力造成的KDS数据重复可以通过加入唯一码(Unique ID)来去重解决。
- KCL ExpiredIteratorExceptions=增加DynamoDB的写入单元(write capacity units)。
- KCL Poll delay=1sec,通过修改propagation delay in KCL default setting可以降低。
- KDS的每个shard可以用一个Lambda进行处理,如果处理过慢可以增加shard。此外当一个stream有多个消费者时可以使用fan-out提升性能。还有一种提升性能的办法叫HTTP/2,这种协议比HTTP读取速度更快。但这两种办法都要额外收费。
- 一个KDS可以有多个消费者。一个KDS fan-out lambda支持最多20个终端。
- KDS实际吞吐量小于assigned streams throughput:shard分配不平衡。
- KDS可以保留数据长达一年。
- KDS encrypted at rest = Server-side encryption with CMK in KMS
- KDS有VPC Endpoint保证流量不用走公网
- KDS + API Gateway = Kinesis Proxy
- KPL会buffer records,如果要最快,直接调用PutRecord/PutRecords。
- KDS stream resize后,通过process parent shard去避免记录乱序。
- KDS throttle write requests:increase shards(UpdateShardCount API),choose partition key.
- CloudWatch Subscription Filter跨account传给KDS= IAM Role and Trust policy.
KDA
- KDA from S3/MCK/KDS to S3/MCK/KDS。KDA还能分析KDF数据流。
- KDA使用S3文件,reference data source,自动推测结构。
- KDA for SQL不支持MSK,不支持schema改变。
- KDA基于Flink,open-source兼容。
MSK
- MSK支持storage auto scale up。
- Kafka Topic权限控制=Kafka ACL
posted @
2022-11-27 22:02
爱知菜
阅读(
76)
评论()
编辑
收藏
举报