谷粒商城-Day05

1.测试fastdfs

在测试前要确保所有服务都已正常开启:

开启tomcat:root@yyj-virtual-machine:/opt/apache-tomcat-8.5.24/bin#
./startup.sh

开启zookeeper: root@yyj-virtual-machine:/opt/zookeeper-3.4.11/bin#
./zkServer.sh start
root@yyj-virtual-machine:/opt/zookeeper-3.4.11/bin# ./zkServer.sh
status

开启nginx: root@yyj-virtual-machine:/usr/local/nginx/sbin# ./nginx

启动tracker和storage sudo service fdfs_trackerd start sudo service
fdfs_trackerd status

  1. 在opt目录下新建一个图片文件,我这里是timg.jpg
    在这里插入图片描述
  2. 执行root@yyj-virtual-machine:/opt# /usr/bin/fdfs_test /etc/fdfs/client.conf upload /opt/timg.jpg
    出现下面的语句说明操作成功:
    在这里插入图片描述
  3. 进入/opt/fastdfs/data/00/00/路径下(这里是文件上传后保存的路径),执行ls:
    在这里插入图片描述
    说明文件确实上传成功了。
  4. 因为fastdfs本身不是http服务器,所以无法处理http协议的web请求,因此上面两个url直接在浏览器上访问是没办法看到效果的。

安装fdfs整合nginx的插件

  1. 解压插件:root@yyj-virtual-machine:/opt# tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
  2. 进入解压文件的src目录下,有两个配置文件:
    在这里插入图片描述
    第一个config是它自身的配置文件,第二个是需要拷贝到/etc/fdfs下的配置文件。
  3. 先修改自身的配置文件:vi config
    在这里插入图片描述
    将这里的两处地方改一下,去掉local即可。
  4. 将第二个配置文件拷贝到/etc/fdfs/目录下:root@yyj-virtual-machine:/opt/fastdfs-nginx-module/src# cp mod_fastdfs.conf /etc/fdfs/
    然后修改/etc/fdfs/路径下的该配置文件:
    root@yyj-virtual-machine:/etc/fdfs# vi mod_fastdfs.conf
    有四处地方需要修改:
#软件安装目录
base_path=/opt/fastdfs
#Web的url是否包含group的路径名
url_have_group_name = true
#Tracker_server地址
tracker_server=192.168.37.132:22122
#上传文件地址
store_path0=/opt/fastdfs/fdfs_storage

安装nginx

  1. 解压nginx安装包
    root@yyj-virtual-machine:/opt# tar -zxvf nginx-1.12.2.tar.gz

  2. 创建临时的目录/var/temp/nginx/client
    root@yyj-virtual-machine:/usr/local/nginx/sbin# mkdir -p /var/temp/nginx/client

  3. 进入解压文件夹下,然后将下面命令粘贴运行,用于做web服务器,提供http请求

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/opt/fastdfs-nginx-module/src

这里有个坑。(–pid-path=/var/run/nginx/nginx.pid \)因为IP没有设置为静态IP,所以后面IP可能会变。
可以参考下面几篇文章进行解决:1、https://blog.csdn.net/qq_36937342/article/details/80876385?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
2、https://blog.csdn.net/qq_42975842/article/details/81705244?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
4. 执行make,make install指令
root@yyj-virtual-machine:/opt/nginx-1.12.2# make
root@yyj-virtual-machine:/opt/nginx-1.12.2# make install
5. 修改nginx.conf
vi /usr/local/nginx/conf/nginx.conf
在这里插入图片描述
6. 启动nginx

root@yyj-virtual-machine:/usr/local/nginx/sbin# ./nginx
./nginx: error while loading shared libraries: libfdfsclient.so: cannot open shared object file: No such file or directory

如果有上面的报错,解决办法:

root@yyj-virtual-machine:/usr/lib64# cp libfdfsclient.so  /usr/lib

再次启动nginx

root@yyj-virtual-machine:/usr/local/nginx/sbin# ./nginx
ngx_http_fastdfs_set pid=55777

一切正常,此时浏览器访问之前上传图片的http:
在这里插入图片描述

nginx集群

一个tracker可以有很多storage,如果要有多个tracker,可以用nginx实现负载均衡。

nginx整合SpringBoot

1.通过git下载fdfs的客户端

https://github.com/happyfish100/fastdfs-client-java

2.将fdfs的客户端打包到本地maven仓库中

在这里插入图片描述
导入maven工程
在这里插入图片描述
然后在gmall-manage-web模块下的pom文件中引入fastdfs的依赖。

       <dependency>
            <groupId>org.csource</groupId>
            <artifactId>fastdfs-client-java</artifactId>
            <version>1.29-SNAPSHOT</version>
        </dependency>

实现spu图片的上传工具类PmsUploadUtil.java

spu保存涉及到的数据结构
Pms_product_info
Pms_product_image
Pms_product_sale_attr
Pms_procuct_sale_attr_value
Pms_base_sale_attr

sku管理功能
Pms_Sku_info
Pms_sku_image(从已经添加的spu的图片库中选择,当前sku涉及的图片)
Pms_Sku_attr_value
Pms_Sku_sale_attr_value_
当前sku所关联的平台属性中间表

平台属性和销售属性的区别:
平台属性属于所有商品,由电商网站维护管理
销售属性属于商家,由商家来维护管理

添加sku
1 平台属性列表(平台属性+平台属性值双层集合)
http://127.0.0.1:8081/attrInfoList?catalog3Id=61

2 销售属性列表
http://127.0.0.1:8081/spuSaleAttrList?spuId=24

3 spu的图片列表
http://127.0.0.1:8081/spuImageList?spuId=24

4 保存spu信息
http://127.0.0.1:8081/saveSkuInfo

5 保存skuInfo
新建controller、service、mapper,增删改查。。。

小结:

今天的主要内容还是前面配置环境,后面涉及到代码部分的建议直接看代码来理解是如何将数据传给前端的。
代码仓库:https://github.com/gavin-yyj/gmall

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值