0

如何扩展Google Cock Pub/Sub与Google云端存储中的对象变更通知相比,使用签名URL来上传对象时,Google Club Pub/Sub的可扩展性如何?Google Club Pub/Sub对象变更通知

如何在短时间内处理很多正在上传的对象方面进行比较?如果很多对象都很快上传,交付速度会变慢吗?例如,1000个对象/秒?

如果什么其他选择在那里也不是可扩展的?

为了我的目的,我需要上传图片,然后当通知发送到我的Google App Engine应用程序时,我需要写入我的数据库。上传图片和通知之间的时间间隔很短(最多2-3秒)是非常重要的。

回答

2

在每秒1000点对象发生变化,要使用云端发布/订阅通知。

两个对象更改通知和云端发布/订阅通知将在1000 QPS工作得很好。但是,在这些负载的情况下,选择Cloud Pub/Sub有几个原因。

首先,云端发布/订阅订阅支持提取消息。通过一次调用pull(),您可以一次检索100条或更多条消息,然后通过一次调用acknowledge()来确认它们。对象更改通知通常会为每封邮件调用一次服务。使用Cloud Pub/Sub可以立即将服务器需要处理的RPC数量减少两个数量级。

其次,在高QPS时,您将希望开始考虑失败,超时和重试。由于各种原因,Cloud Pub/Sub也是一个优越的选择。首先,它支持可配置的确认最后期限,而对象更改通知必须在20秒内处理。另一方面,您可以查询查看当前积压的大小,以防万一您落后。如果您使用推送订阅,如果您的消息接收器脱机一段时间,Cloud Pub/Sub也会有更加友好的流量增长,所以当您重新联机时,您不会压倒自己的服务器。

第三,灵活性。 Cloud Pub/Sub是围绕这个用例而设计的。接收大量的消息是他们的全部面包和黄油,并且有许多关注它的功能和库。但云存储专注于存储数据。对象更改通知有效,但永远不会提供与Cloud Pub/Sub一样多的通知功能。

+0

太棒了!感谢您的详细描述。上传带有Signed URL的对象时,是否也可以传递自定义标头,然后通过Cloud Pub/Sub将其传递到Servlet? – BlueBoy

+0

是的,如果您上传包含一些自定义对象元数据的对象,那么当通知到达时,额外的元数据将可用。 –

+0

只好与该另一个问题:http://stackoverflow.com/questions/43360536/how-to-send-custom-data-with-cloud-pub-sub-when-gcs-object-is-uploaded-via- A-SIG – BlueBoy