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

时间:2016-01-05 21:50:05

标签: node.js producer-consumer amazon-kinesis amazon-kcl

我有一个简单的问题。 KCL能够从多个流中消费吗?您是否应该为您的应用程序设置多个流,或者是一个应该与单个应用程序绑定的单个流?我的特殊用例是我需要使用从后端和前端生成的数据。其中一个以比另一个更高的速率生成数据,因此认为它们应该生成单独的流以进行处理。有没有办法从同一个KCL进程中使用两个流,还是需要设置两个流?谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

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

如果您有2个不同的事件流,最好有2个不同的动力流,每个流一个。这允许您独立地缩放每个流,因为每个流具有不同的速率和可能不同的峰值。

如果需要在流之间共享信息,可以使用某些数据库(如DynamoDB或Redis)在它们之间使用共享状态变量。

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