亚马逊的Kinesis客户端库可以使用多个stream吗?

我有一个快速的问题。 KCL能够从多个stream中消费吗? 您是否应该为您的应用程序设置多个stream,或者是应该与个别应用程序绑定的单个stream? 我特别的用例是我需要使用从后端和前端产生的数据。 其中一个产生的数据速度要比另一个速度快得多,因此认为它们应该产生分开的数据stream进行处理。 有没有办法同时使用KCLstream程中的两个stream,还是需要设置两个stream? 谢谢你的帮助!

KCL是一个开源项目,您可以修改它来使用来自多个stream的事件,但不build议这样做。 保持简单更好。

如果你有两个不同的事件stream,你最好有两个不同的kinesisstream,每一个。 这允许您独立地缩放每个stream,因为每个stream具有不同的速率并且可能具有不同的峰值。

如果您需要在stream之间共享信息,则可以使用一些数据库(如DynamoDB或Redis)在它们之间使用共享状态variables。

请注意,如果您有一组服务器正在发送这些事件,则应该期望后端的某些事件可能会在事件发生前从前端处理。 您将必须处理这些事件的KCL(或Lambda)代码可能具有不同的处理速率,不同的故障点和其他不同步事件。 注意这种潜在的依赖和例外。