HM-SpringCloud微服务系列11.1.2【案例导入】

启动docker服务:systemctl start docker

2.1 导入商品管理案例

2.1.1 安装MySQL

后期做数据同步需要用到MySQL的主从功能,所以需要大家在虚拟机中,利用Docker来运行一个MySQL容器(新的,防止与其他环境干扰)。
CentOS虚拟机Docker安装MySQL
本地Navicat远程连接虚拟机中的MySQL数据库

  1. 为了方便后期配置MySQL,我们先准备两个目录,用于挂载容器的数据和配置文件目录:
    # 进入/tmp目录
    cd /tmp
    # 创建文件夹
    mkdir mysql
    # 进入mysql目录
    cd mysql
    
  2. 进入mysql目录后,执行下面的Docker命令
    docker run \
     -p 3306:3306 \
     --name mysql \
     -v $PWD/conf:/etc/mysql/conf.d \
     -v $PWD/logs:/logs \
     -v $PWD/data:/var/lib/mysql \
     -e MYSQL_ROOT_PASSWORD=123 \
     --privileged \
     -d \
     mysql:5.7.25
    
  3. 在/tmp/mysql/conf目录添加一个my.cnf文件,作为mysql的配置文件:
    # 创建文件
    touch /tmp/mysql/conf/my.cnf
    
    文件内容:
    [mysqld]
    skip-name-resolve
    character_set_server=utf8
    datadir=/var/lib/mysql
    server-id=1000
    
  4. 配置修改后,必须重启容器:
    docker restart mysql
    

image
image
image
image
image
image
image

2.1.2 导入SQL

  1. 导入课前资料提供的item.sql文件:
    image
  2. 其中包含两张表:
    • tb_item:商品表,包含商品的基本信息
    • tb_item_stock:商品库存表,包含商品的库存信息
  3. 之所以将库存分离出来,是因为库存是更新比较频繁的信息,写操作较多。而其他信息修改的频率非常低。

image
image
image
image
image

2.1.3 导入Demo工程

  1. 导入课前资料提供的工程item-service
    image
    image
  2. 其中的业务包括(在com.heima.item.web包的ItemController中可以看到以下接口):
    • 分页查询商品
      image
    • 新增商品
      image
    • 修改商品
      image
    • 修改库存
      image
    • 删除商品(这里是采用了逻辑删除,将商品状态修改为3)
      image
    • 根据id查询商品(这里只返回了商品信息,不包含库存)
      image
    • 根据id查询库存
      image
  3. 业务全部使用mybatis-plus来实现,如有需要请自行修改业务逻辑。
  4. 修改配置,启动测试
    image
    image
    访问http://localhost:8081/item/10001查询数据
    image
    image

2.1.4 导入商品查询页面

  1. 商品查询是购物页面,与商品管理的页面是分离的。部署方式如图:
    image
  2. 我们需要准备一个反向代理的nginx服务器,如上图红框所示,将静态的商品页面放到nginx目录中。
  3. 页面需要的数据通过ajax向服务端(nginx业务集群)查询。

【第一步:运行nginx服务】
找到课前资料的nginx目录,将其拷贝到一个非中文目录下,start nginx.exe运行这个nginx服务
访问http://localhost/item.html?id=10001测试
image
image
image
image
image

【第二步:配置反向代理】
现在,页面是假数据展示的。我们需要向服务器发送ajax请求,查询商品数据。
打开控制台,可以看到页面有发起ajax查询数据:
image
而这个请求地址同样是80端口,所以被当前的nginx反向代理了。
查看nginx的conf目录下的nginx.conf文件:
image
image


#user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
	
	# nginx的业务集群
    upstream nginx-cluster{
        server 10.193.193.141:8081;
		# server 10.193.193.141:8082;
    }
    server {
        listen       80;
        server_name  localhost;

	location /api {
            proxy_pass http://nginx-cluster;
        }

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
posted @   yub4by  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示