【发布时间】:2018-02-20 04:16:51
【问题描述】:
我正在构建一个应用程序,该应用程序不断地附加到缓冲区,而许多读者独立地从该缓冲区中消费(一次写入多次读取 / WORM)。起初我想使用 Apache Kafka,但由于我更喜欢即服务选项,因此我开始研究 AWS Kinesis Streams + KCL,看来我可以用它们完成这项任务。
基本上我需要 2 个功能:排序(所有读取器必须以相同的顺序读取事件)以及选择缓冲区中从读取器开始消费的偏移量的能力。
现在我也在评估 Google Cloud Platform。在我阅读文档时,似乎建议将 Google Pub/Sub 等同于 AWS Kinesis Stream,但在更详细的层面上,这些产品似乎有很大不同:
- Kinesis 保证在分片内进行排序,而在 Pub/Sub 上的排序是在尽力而为的基础上进行的;
- Kinesis 拥有可供读者使用的所有缓冲区(最多 7 天),读者可以使用偏移量来选择开始阅读位置,而在 PubSub 上,只有订阅后的消息可供使用。
如果我没记错的话,PubSub 不能被视为 Kinesis 等价物。也许如果与 Google Dataflow 一起使用?我必须承认我仍然看不到怎么做。
那么,PubSub 是 Kinesis 的替代品吗?如果没有,是否有可以满足我要求的 Google Cloud 产品?
谢谢!
【问题讨论】:
-
这也是我能看到的。 PubSub+DataFlow(大约)不等同于 Kinesis。虽然我广泛使用了 Kinesis,但我没有看到有关 pubsub 和 Dataflow 的此类文档或功能。他们可能有点远。
-
cloud.google.com/blog/big-data/2016/09/… 的帖子让我更加困惑。它(巧妙地)暗示 PubSub 是 Kafka 的替代品,但我仍然看不到相同的功能。
-
使用 Pub/Sub,您需要在消息负载中添加订购信息。这可能是您的应用程序的问题,也可能不是。
标签: amazon-web-services apache-kafka google-cloud-platform amazon-kinesis google-cloud-pubsub