需求分析
项目模块
-
account – 登陆
-
admin – spring-boot-admin,应用监控
-
api – 远程接口调用,服务端和客户端公用的接口
-
config-- 参数配置
-
core – util、工具类
-
dashboard – 监控界面(hystrix监控)xxx.xxx.xxx.xxx:8194/hystrix
-
eureka – 注册
-
kill – 秒杀
-
model – java bean是在这里面
-
mongo – mongoDB操作,(目录、)
-
oreder service – 普通订单,与kill互斥
-
pay–微信支付 (预支付、微信回调(涉及分布式事务))
-
product service – 商品
-
user-service – 用户管理
-
web
-
web mng – 引用了web
-
web order – 引用了web
-
zipkin – 链路追踪
-
zuul – gateway,
开发步骤
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qSDxF9gV-1599920609781)(C:\Users\liusiping\AppData\Roaming\Typora\typora-user-images\image-20200911213855218.png)]
- 中心型公司基本没有详细设计,预研项目不彻底,导致反复重复修改代码逻辑
需求设计
-
购物车 – mongoDB里面就会生成购物车数据
-
支付管理
- 订单提交-- 异步生成一个未支付订单
- 只实现了一个微信支付(两三天时间)
- 安全密钥的配置
- 安全证书
- 流转路径
- 预支付,校验参数、签名
- 微信支付
- 回调接口
-
订单模块
- 我的订单
-
收货地址
项目启动顺序
-
把application.yml中的active里面都改成test,
-
先启动eureka,再启动mall-config,之后的启动顺序没有影响
功能设计
- powerdeginer: 数据库建模
生成japidocs
- 不要使用swagger,太重了
报错
- command is too long
机器部署(实践项目部署文档)
- 九台服务器,3台4核8g,6台2核4g
- jdk、maven安装
- docker安装
- docker compose安装
- docker仓库服务
- docker 挂载目录约定
项目环境(实践项目部署文档)
- zk搭建
- redis搭建
- mysql主从搭建
- mongdb搭建
- fastdfs搭建
- rabbitmq服务
- nginx服务
- 一系列挂载,静态资源挂载
- seata数据库
- apm部署
- zookeeper
- kafka
- es
- 需要进入jvm.options
- 加入如下配置(允许跨域访问)
- http.cores.enabled:true
- es head
- kafka
- zipkin
- 声明去连接kafka、zookeeper
- mycat安装
项目代码管理
-
ci 和cd主要是借用jenkins做的
-
怎么ci和cd
-
项目的config
-
持续集成的是jdk、maven、git
-
需要制定pom文件的目录
-
jenkin命令(ci过程)
-
ci1:git的账号密码
-
ci2:打包并且制作镜像的命令
- clean package docker:build ,
-
ci3:需要配合dockerfile文件 复制jar包,启动项目
-
-
cd过程,已经生成好docker镜像了
-
cd1:上传镜像到镜像仓库(execute shell)
- docker login -u xxxxx
- docker tag mall/mall-account xxx
- docker push xxx
-
cd2:部署到n台服务器上面去(ssh推送到远程地址)(send files or excute commands over SSH)106.55.25.100(某台服务器)
-
docker login -u xxxqq.com -p xxpassword xxxdockerName
-
docker pull xxxdockername
-
docker ps | grep xxname &> /dev/null
-
if [ $? == 0]
then
echo
docker stop
echo
docker rm xx
echo
docker run -ti -d -p --name xxx -v /home/logs/:logs/ --add-host=eureka.h:xxxx(application-beta.yml文件搜eureka)(动态配置eureka地址) -e "EIREKA_INSTANCE_IP-ADDRESS==XXX.XXX.XXX.XXX "(动态配置eureka的ip) -e “CN_PRO_ACTIVE=beta” xxxxxdockername
exit 0
else
-
fi
-
-
-
jenkins的global tool configureation(git、maven、jdk、docker的基础配置)
-
jenkins的仓库地址,root目录下 .jenkins
- workspace
- 进入具体的项目
- 进入target
- docker
- xxx.jar
- 在docker目录下输入命令docker build xxx
- docker
- 进入target
- 进入具体的项目
- workspace
-
为什么没用k8s,服务器不够大,人手不够,腾讯云现成的k8s很贵
-