项目的简单分析及部分jenkins命令

需求分析

项目模块

  • 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
    • 为什么没用k8s,服务器不够大,人手不够,腾讯云现成的k8s很贵

你可能感兴趣的:(项目实践,docker)