我今天了解到Google App Engine中的分片计数器。文章说,您应该预计每个实体在数据存储中每秒最多可以达到约5个更新/秒。但我认为,除非您有某种方法知道每秒更新的数量,否则这个解决方案就不会“扩展”。例如,您可以分配10个分片,但是在每秒50次更新时,您将开始出现问题。
那么,您如何知道更新的速度,并将该数字反馈到分片数中呢?
我的猜测是,除了计数器之外,您还可以保留一些最近活动的记录,如果检测到峰值,则可以增加分片数。通常是这样做的吗?如果是这样,为什么示例代码中没有这样做? (最后一个问题可能无法回答。)与在代码中自动执行相比,监视网站活动并随着流量上升更新分片计数是否更常见?
更新:分片过少和阻塞的实际后果是什么?这是否意味着网站变得无响应,或者由于超时而可能丢失计数器更新?
顺便说一句,这个问题讨论了如何实现计数器而不进行分片,但其中一个答案暗示即使是memcache在流量高时也需要进行分片。因此,分片分配和调整问题似乎很重要。
那么,您如何知道更新的速度,并将该数字反馈到分片数中呢?
我的猜测是,除了计数器之外,您还可以保留一些最近活动的记录,如果检测到峰值,则可以增加分片数。通常是这样做的吗?如果是这样,为什么示例代码中没有这样做? (最后一个问题可能无法回答。)与在代码中自动执行相比,监视网站活动并随着流量上升更新分片计数是否更常见?
更新:分片过少和阻塞的实际后果是什么?这是否意味着网站变得无响应,或者由于超时而可能丢失计数器更新?
顺便说一句,这个问题讨论了如何实现计数器而不进行分片,但其中一个答案暗示即使是memcache在流量高时也需要进行分片。因此,分片分配和调整问题似乎很重要。