图像分片/分布在多个服务器上

Sharding of images / distrubuting on multiple Server

我有一个非常大的产品数据库,免费 space 非常小,无法保存所有图像。 我现在想添加更多服务器并且必须在多个服务器上分发图像。但我需要一种一致的方法来在所有服务器之间分割产品图像。 ID 是 auto_increment 所以我不能使用它,因为有时产品会被删除,它们的图像也会被删除。因此,在这种情况下,如果我只是说:服务器 A 上的 ID 1-10M,服务器 B 上的 ID 10M > ID <20M 等。当所有 ID 为 1 到 10M 的产品都被删除时,我最终会得到一个空的服务器 A。

以及在使用网站上的图片时如何处理。 所有图像都应该在一个域下可用,例如。 staticexample.com使用nginx根据uri将请求映射到正确的上游

我需要有人为我指明正确的方向。

Ps。我不想只向我的服务器添加更多 space,因为这只是一个临时解决方案。我需要一个水平刻度。

感谢任何帮助

谢谢

  • 分片不是基于范围,而是基于余数,例如 server_id = image_id % total_server_num。基于此模式删除图像的可能性不大。
  • 您可以使用子域或子文件夹(static.site.com/1/,static.site.com/2/)并映射到不同的后端。