diff --git a/README.md b/README.md
index d0609af..d352c32 100644
--- a/README.md
+++ b/README.md
@@ -13,8 +13,8 @@
声明
- - 本项目静态资源由网络收集得来,并加以大范围修改
- 未经许可不得将本项目商用,如需商用请联系作者zxr@tju.edu.cn
+ - 欢迎各位看官向本项目提交代码,对提交的分支我将进行合并。提交时请务必保证能编译能运行
关键技术
基于SpringCloud框架开发的商城系统,代码严格遵循MVC分层思想,可部署到服务器上,设计精良,不断完善
@@ -96,16 +96,74 @@
单个秒杀商品查询
发起秒杀
-交流群
-点击链接加入群聊【Supermarket项目交流群】:https://jq.qq.com/?_wv=1027&k=wlpUy5jo
-
-部署教程
-
+
+新版本部署教程
+
+ - 环境准备
+ - 开发环境准备:首先你需要有一台电脑、以及一个虚拟机(或服务器)。内存要大,不然跑不起来。假设你的虚拟机的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
+ - 部署环境准备:虚拟机装上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目录下
+
+ - 部署数据库
+ - 参照数据库启动脚本逐行执行,或直接运行该脚本。
+ - 由于官方的mysql镜像没有默认开启主从配置,也没设定UTF-8字符集,因此使用本项目专有镜像zongxr/mysql:5.7.37,可自动开启bin-log,并设定UTF-8字符集
+ - 该脚本制作了双向主从高可用的数据分片,节点分别为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
+
+
+ - 部署redis集群
+ - 参照redis启动脚本逐行执行,或者直接运行该脚本
+ - 该脚本搭建了一个6节点的redis集群,从redis-1到redis-6。由于3.2.11版本的redis官方镜像没有预置ruby环境,而创建集群需要使用ruby环境。因此使用该项目的专用redis镜像zongxr/redis:3.2.11,该镜像已经集成了ruby环境可直接使用。
+ - 如果上一步redis集群部署成功了,那么可以通过6379端口连接该集群
+
+ - 部署elasticsearch集群
+ - 参照elasticsearch启动脚本逐行执行,或直接运行该脚本
+ - 该脚本搭建了3节点的elasticsearch集群,分别是es-1, es-2, es-3。如果部署成功了,可以使用head插件连接http://192.168.137.147:9200/地址,集群状态应为green
+ - 官方默认的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
+
+
+ - 部署微服务
+ - 参照微服务启动脚本逐行执行,或直接运行该脚本
+ - 每个微服务做了一个镜像,名为zongxr/supermarket-xxx:tag。如果所有微服务都启动成功了,那么将能够在注册中心看到所有注册的微服务
+ - instant-buy微服务用到了消息队列rabbitmq。如果消息队列启动成功,将能够在Web UI管理界面看到传输的消息,用户名密码均为guest
+
+ - 至此,所有服务都已经启动完成了。访问www.supermarket.com进行访问即可。
+
+旧版本部署教程
+
+交流群
+点击链接加入群聊【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锦集(作为记录,博君一笑)
- HttpServletRequest的装饰者类HttpServletRequestDecorator中的getParameterMap重写方法中,不能在原地进行参数字符集修改,否则如果调用两次及以上该方法时会编码多次,造成乱码
diff --git a/start_up/app/start_app.sh b/start_up/app/start_app.sh
index e3de768..36a2ca7 100644
--- a/start_up/app/start_app.sh
+++ b/start_up/app/start_app.sh
@@ -31,7 +31,7 @@ docker network connect net-redis supermarket-image-1
docker run -d --name supermarket-search-1 --restart always --net net-app -p 10007:10007 zongxr/supermarket-search:1.0-SNAPSHOT
docker network connect net-es supermarket-search-1
-# 启动秒杀微服务
+# 启动instant-buy微服务
docker run -d --name rabbitmq --restart always --net net-app -p 5672:5672 -p 15672:15672 rabbitmq:3.7.7
docker exec rabbitmq /usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management
docker run -d --name supermarket-instantbuy-1 --restart always --net net-app -p 10008:10008 zongxr/supermarket-instantbuy:1.0-SNAPSHOT