- 解释一下什么是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称为存储服务器。
文件上传流程:
- 负责文件存储的StorageServer集群会定时向负责调度的TrackerServer汇报各个服务目前的状态信息
- 当有文件上传的请求发送过来的时候,Client客户端会先去问一下TrackerServer哪个StorageServer有空
- TrackerServer接到请求之后就开始自查一下自己这边保存的StorageServer发送过来的状态信息,看那个Storage可以使用
- Tracker把查询到的可以的Storage地址信息(IP和端口)告诉给Client端
- Client会根据Tracker发送过来的信息找到对应的Storage
- Storage接到存储文件的请求之后会先生成一个fileId把这个文件做一个唯一标识方便查找
- 做完标识之后,Storage才开始干活儿,把文件写到磁盘
- Storage干完活儿之后,会把生成的fileId返回给Client端
- Client端拿到fileId之后把它存起来,一般是存数据库,方便下次取的时候可以通过这个唯一标识找到自己存的东西
文件下载流程:
- 负责文件存储的StorageServer集群会定时向负责调度的TrackerServer汇报各个服务目前的状态信息
- 当有文件下载的请求发送过来的时候,Client客户端会先去问一下TrackerServer它想要下载的文件在哪个地方可以下载
- TrackerServer接到请求之后就开始自查一下自己这边保存的StorageServer发送过来的状态信息,看一下有哪些Storage有这个文件,然后基于一些算法,选择一个最优的方案
- Tracker把查询到的可提供下载的最优方案的Storage地址信息(IP和端口)告诉给Client端
- Client端拿着从数据库拿到的想要下载的那个文件的唯一标识fileId去找到Tracker提供给它的Storage那里去请求下载服务
- Storage根据fileId查了一下,找到了那个文件,就把文件给了Client端。