在我在 AWS 上的架构中,我有一个运行在 EC2 实例上的服务,它调用 Twitter 流 API 进行数据摄取,即实时推文的摄取。我将此服务称为 TwitterClient。
Twitter API 使用一种基于 HTTP 协议的长轮询来传递流数据。文档说——在您的应用程序(在我的例子中是 TwitterClient)和 API 之间打开了一个连接,并通过该连接发送新的推文。
TwitterClient 然后将实时推文传递到后端(使用 Kinesis Data 流)进行处理。
我面临的问题是 - 并行运行多个 EC2 实例将导致重复的推文被摄取,并且每条推文都将被处理多次。但是,只有一个 EC2 实例会成为单点故障。
我无法承受停机时间,因为我不能错过任何一条推文。
我应该怎么做才能确保高可用性?
编辑:添加了 Twitter API 如何传递流数据的简要说明