用于nrt数据应用程序的google云数据流

tyky79it  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(351)

我正在评估kafka/spark/hdfs,以开发nrt(sub-sec)java应用程序,该应用程序从外部网关接收数据,并将数据发布到桌面/移动客户端(客户机),用于各种主题。同时,数据将通过流式处理和批处理(持久性)管道传输,用于分析和ml。
例如,流将是。。。
独立的tcp客户机从外部tcp服务器读取流数据
客户端根据数据包(kafka)发布不同主题的数据,并将其传递到流式处理管道进行分析(spark)
桌面/移动消费者应用程序订阅各种主题并接收nrt数据事件(Kafka)
消费者还从流式/批处理管道(spark)接收分析
kafka集群必须进行管理、配置和监控,以获得最佳性能和可扩展性。这可能需要额外的人力资源和工具来管理操作。
kafka、spark和hdfs可以选择部署在amazonec2(或者使用连接器的google云)上。
我读了一些关于google云数据流、云存储、bigquery和pub-sub的文章,这些数据流提供了自动伸缩和实时监控数据管道的工具,非常有用。但是设置有一些限制,例如pub-sub-push要求客户端使用https端点,而应用程序部署需要使用web服务器,例如app engine webapp或gce上的web服务器。
这可能不如部署一个双向tcp/ip应用程序(可以利用pub-sub和数据流管道来传输数据)那么有效(我担心使用http时的延迟)。
理想情况下,googlecloud上最好的设置是运行tcp客户端,连接到gce上部署的外部网关,该网关使用pub-sub将数据推送到桌面消费者应用程序。此外,它还将利用数据流管道进行分析,并通过使用cloudera spark connector进行数据流的spark for ml(预测api有点限制)进行云存储。
可以在google云上部署kafka/spark/hdfs等,但这有点违背了利用google云技术的目的。
感谢您对以上设置是否可以使用googlecloud或使用ec2/kafka/spark等进行考虑。

ibps3vxo

ibps3vxo1#

从数据流的Angular 来看,这听起来很合适,尤其是当您将混合流式和批处理风格的分析时。如果您还没有,请查看我们的移动游戏演练。
我不太清楚使用cloudera的dataflow/spark runner for ml是什么意思。

vwhgwdsa

vwhgwdsa2#

谈到云pub/sub方面,需要记住以下几点:
如果您不想在订阅服务器中运行web服务器,可以考虑使用基于pull的订阅服务器而不是基于push的订阅服务器。为了最小化延迟,您希望在任何时候至少有几个未完成的拉请求。
只有当你拥有不超过10000个客户时,让你的桌面消费者应用程序直接充当pub/sub的订阅者才有效;订阅数量限制为10000份。如果你需要扩展到这个范围之外,你应该考虑google云消息或firebase。

相关问题