diff --git a/README.md b/README.md index d0609af..d352c32 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,8 @@ 秒杀

声明

关键技术

基于SpringCloud框架开发的商城系统,代码严格遵循MVC分层思想,可部署到服务器上,设计精良,不断完善

@@ -96,16 +96,74 @@
  • 单个秒杀商品查询
  • 发起秒杀
  • -

    交流群

    -点击链接加入群聊【Supermarket项目交流群】:https://jq.qq.com/?_wv=1027&k=wlpUy5jo
    -交流群二维码 -

    部署教程

    - + +

    新版本部署教程

    +
      +
    1. 环境准备
        +
      1. 开发环境准备:首先你需要有一台电脑、以及一个虚拟机(或服务器)。内存要大,不然跑不起来。假设你的虚拟机的ip地址是192.168.137.147在你的电脑中把hosts追加两行。
        + 192.168.137.147 www.supermarket.com
        + 192.168.137.147 image.supermarket.com
        + 然后添加环境变量
        + DOCKER_HOST=tcp://192.168.137.147:2375
      2. +
      3. 部署环境准备:虚拟机装上centos7,再装上docker,然后依次拉取镜像
        + docker pull zongxr/redis:3.2.11
        + docker pull zongxr/mycat:1.15.1
        + docker pull zongxr/mysql:5.7.37
        + docker pull zongxr/elasticsearch:6.8.6
        + docker pull zongxr/supermarket-cart:1.0-SNAPSHOT
        + docker pull zongxr/supermarket-user:1.0-SNAPSHOT
        + docker pull zongxr/supermarket-gateway:1.0-SNAPSHOT
        + docker pull zongxr/supermarket-eureka:1.0-SNAPSHOT
        + docker pull zongxr/supermarket-image:1.0-SNAPSHOT
        + docker pull zongxr/supermarket-search:1.0-SNAPSHOT
        + docker pull zongxr/supermarket-instantbuy:1.0-SNAPSHOT
        + docker pull zongxr/supermarket-product:1.0-SNAPSHOT
        + docker pull zongxr/supermarket-order:1.0-SNAPSHOT
        + 然后把start_up目录拷贝到/home目录下
      4. +
    2. +
    3. 部署数据库
        +
      1. 参照数据库启动脚本逐行执行,或直接运行该脚本。
      2. +
      3. 由于官方的mysql镜像没有默认开启主从配置,也没设定UTF-8字符集,因此使用本项目专有镜像zongxr/mysql:5.7.37,可自动开启bin-log,并设定UTF-8字符集
      4. +
      5. 该脚本制作了双向主从高可用的数据分片,节点分别为dn1_host1, dn1_host2, dn2_host1, dn2_host2。并且通过mycat实现了读写分离以及分库分表,最后灌入数据。如果上一步执行成功了,你将能够通过以下的JDBC连接上数据库 + jdbc:mysql://192.168.137.147:3306/supermarket连接dn1_host1
        + jdbc:mysql://192.168.137.147:3307/supermarket连接dn1_host2
        + jdbc:mysql://192.168.137.147:3308/supermarket连接dn2_host1
        + jdbc:mysql://192.168.137.147:3309/supermarket连接dn2_host2
        + jdbc:mysql://192.168.137.147:8066/supermarket连接mycat
        +
      6. +
    4. +
    5. 部署redis集群
        +
      1. 参照redis启动脚本逐行执行,或者直接运行该脚本
      2. +
      3. 该脚本搭建了一个6节点的redis集群,从redis-1到redis-6。由于3.2.11版本的redis官方镜像没有预置ruby环境,而创建集群需要使用ruby环境。因此使用该项目的专用redis镜像zongxr/redis:3.2.11,该镜像已经集成了ruby环境可直接使用。
      4. +
      5. 如果上一步redis集群部署成功了,那么可以通过6379端口连接该集群
      6. +
    6. +
    7. 部署elasticsearch集群
        +
      1. 参照elasticsearch启动脚本逐行执行,或直接运行该脚本
      2. +
      3. 该脚本搭建了3节点的elasticsearch集群,分别是es-1, es-2, es-3。如果部署成功了,可以使用head插件连接http://192.168.137.147:9200/地址,集群状态应为green
      4. +
      5. 官方默认的elasticsearch镜像不带JDBC连接功能,该项目通过技术手段集成了JDBC连接功能,可以像操作关系型数据库一样写SQL去操作elasticsearch。使用的driver是org.elasticsearch.xpack.sql.jdbc.EsDriver
        + jdbc:es://192.168.137.147:9201连接es-1
        + jdbc:es://192.168.137.147:9202连接es-2
        + jdbc:es://192.168.137.147:9200连接es-3
        +
      6. +
    8. +
    9. 部署微服务
        +
      1. 参照微服务启动脚本逐行执行,或直接运行该脚本
      2. +
      3. 每个微服务做了一个镜像,名为zongxr/supermarket-xxx:tag。如果所有微服务都启动成功了,那么将能够在注册中心看到所有注册的微服务
      4. +
      5. instant-buy微服务用到了消息队列rabbitmq。如果消息队列启动成功,将能够在Web UI管理界面看到传输的消息,用户名密码均为guest
      6. +
    10. +
    11. 至此,所有服务都已经启动完成了。访问www.supermarket.com进行访问即可。
    12. +
    +

    旧版本部署教程

    + +

    交流群

    +点击链接加入群聊【Supermarket项目交流群】:https://jq.qq.com/?_wv=1027&k=wlpUy5jo
    +交流群二维码 +

    版本迭代

    @@ -390,6 +448,16 @@ + + + + +
    2020年12月12日
    1.0.0 +
      +
    • 所有服务及组件迁移至docker,使用容器进行部署
    • +
    • 修复若干BUG
    • +
    +
    2022年3月26日

    配置情况

    @@ -397,7 +465,7 @@
  • JDK版本:OpenJDK11
  • nginx:1.19.1
  • maven: 3.6.3
  • -
  • MySql: 5.5.27
  • +
  • MySql: 5.7.37
  • Redis: 3.2.11
  • MyCat: 1.5.1
  • ElasticSearch: 6.8.6
  • @@ -411,6 +479,7 @@ 127.0.0.1 image.supermarket.com +

    遇到的bug锦集(作为记录,博君一笑)