品优购第五天FastDFS理解

本文详细解释了电商领域中SPU与SKU的概念及其区别,并通过实例加以说明。同时介绍了FastDFS文件系统的特点、适用场景及在高并发图片存储与读取中的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 解释一下什么是spu,什么是sku,举例说明

SPU、SKU都是电商平台商品管理体系中的概念,SPU是 Standard Product Unit,意即标准产品单元,SKU是Stock Keeping Unit缩写,是库存计量单元。

对于电商而言,SPU有一个唯一编码,一个SPU代表一个产品;SKU为一个产品不同属性、规格之间的编码。也就是说,SPU代表产品,SKU代表属性与规格;一个产品,可以是单属性产品,也可以是多属性产品,也就是说一个产品可以有一个SKU,也可以有多个SKU。

SPU/SKU在不同的平台,有不同的表现形式。

比如,在亚马逊,SPU被称为父产品,SKU被称为子产品。意思是不同SKU产品之间,会有父产品的共同属性,但又因为规格、属性、尺码等不同而成为单独的产品,每个子产品之间,都是一个独立的产品。

比如,单独的苹果手机是一个SPU,而“16G内存 银色 4英寸苹果手机”可以看做一条SKU

 

     2.什么是fastDFS,作用是什么?为什么要用它?

FastDFS是阿里巴巴开源的一套轻量级,天生就是分布式设计的文件系统,FastDFS的源代码由C语言开发,目前可运行在Linux,FreeBSD,Unix等类操作系统上,FastDFS解决了大数据量文件存储,适合存储4KB~500MB之间的小文件,如图片网站、短视频网站、文档、app下载站等。使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。因为在我们的品优购项目中,商品的数量很多,商品的图片数据量大,所以必须要使用一个单独的文件系统来进行存储这些,而fastDFS就是一个合适的选择

 

    3.讲一下用fastDFS进行图片存储和读取的原理

FastDFS架构包括Tracker server和Storage server。客户端请求Tracker server进行文件上传、下载,通过 Tracker server调度最终由Storage server完成文件上传和下载。Tracker server作用是负载均衡和调度,通过Tracker server在文件上传时可以根据一些策略找到Storage server提供文件上传服务。可以将tracker称为追踪服务器或调度服务器。Storage server作用是文件存储,客户端上传的文件最终存储在Storage服务器上,Storage server没有实现自己的文件系统而是利用操作系统的文件系统来管理文件。可以将storage称为存储服务器。

 

文件上传流程:

  1. 负责文件存储的StorageServer集群会定时向负责调度的TrackerServer汇报各个服务目前的状态信息
  2. 当有文件上传的请求发送过来的时候,Client客户端会先去问一下TrackerServer哪个StorageServer有空
  3. TrackerServer接到请求之后就开始自查一下自己这边保存的StorageServer发送过来的状态信息,看那个Storage可以使用
  4. Tracker把查询到的可以的Storage地址信息(IP和端口)告诉给Client端
  5. Client会根据Tracker发送过来的信息找到对应的Storage
  6. Storage接到存储文件的请求之后会先生成一个fileId把这个文件做一个唯一标识方便查找
  7. 做完标识之后,Storage才开始干活儿,把文件写到磁盘
  8. Storage干完活儿之后,会把生成的fileId返回给Client端
  9. Client端拿到fileId之后把它存起来,一般是存数据库,方便下次取的时候可以通过这个唯一标识找到自己存的东西

 

文件下载流程:

  1. 负责文件存储的StorageServer集群会定时向负责调度的TrackerServer汇报各个服务目前的状态信息
  2. 当有文件下载的请求发送过来的时候,Client客户端会先去问一下TrackerServer它想要下载的文件在哪个地方可以下载
  3. TrackerServer接到请求之后就开始自查一下自己这边保存的StorageServer发送过来的状态信息,看一下有哪些Storage有这个文件,然后基于一些算法,选择一个最优的方案
  4. Tracker把查询到的可提供下载的最优方案的Storage地址信息(IP和端口)告诉给Client端
  5. Client端拿着从数据库拿到的想要下载的那个文件的唯一标识fileId去找到Tracker提供给它的Storage那里去请求下载服务
  6. Storage根据fileId查了一下,找到了那个文件,就把文件给了Client端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值