我对Kinesis Streams很陌生,花了很多时间阅读文档,但还不能确定是否有可能在单个分片上有多个"主题"(因为缺乏更好的术语)。最初我认为这就是分区键的作用,但是在阅读了以下内容后:
分区键用于在流中按分片对数据进行分组。Streams服务将属于流的数据记录隔离到多个分片,使用与每个数据记录关联的分区键来确定给定数据记录属于哪个分片。
…在我看来,分区(可以)跨越多个分片。
我目前不需要超过一个分片,但我做需要能够将消息分离到该分片内的不同通道/主题-这是不可能的Kinesis吗?
—EDIT—
值得一提的是,我在我的应用程序中同时使用KCL和KPL。
只有一个分片,您将无法将数据分离到单独的通道中。要使用记录,必须首先调用GetShardIterator。GetShardIterator接受流名称、分片id和迭代器类型。
返回的分片迭代器是指向流的指针。如果你调用GetRecords,传递分片迭代器,Kinesis将返回记录给你。响应将包含一批记录,包括数据、时间戳、序列号和分区键。
现在在调用GetRecords/GetShardIterator时没有办法指定主题或任何其他过滤器。