# ladybird-boot **Repository Path**: icanci/ladybird-boot ## Basic Information - **Project Name**: ladybird-boot - **Description**: 基于SpringBoot 2.3 开发 Ladybird 票虫网 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: http://link.icanci.cn/ladybird - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2020-09-27 - **Last Updated**: 2022-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ladybird-boot #### 介绍 基于SpringBoot 2.3 开发Ladybird 票虫网 ### Ladybird项目架构与配置 #### 项目架构 SpringBoot 2.3 Centos7.7 #### 环境说明 - JDK1.8以上 - IDEA 2019以上 - Maven3.5.4 - MySQL - Git - Tomcat - Nginx - Nodejs 14 - 阿里云Centos7.7 - 代码审核框架 sonar - 接口压测 Jmeter5.3 - 其他 #### 项目模型 - 用户端:非前后端分离模型,使用部分Ajax、JSP、模板引擎等实现 - 管理员:前后端分离模式,使用 Ajax 控制数据传输 #### 开发模式 - **Devops** - 使用本地IDEA开发 通过Git管理,整合阿里云Centos7.7 、Jenkins2.5.x、码云、Maven等实现自动化部署 #### 项目技术选型与版本依赖 - 未补全 | 组件 | 版本 | 备注 | | :------------------: | :------------: | :----------------: | | SpringBoot | 2.3.0.RELEASE | 基础环境 | | spring-boot-devtools | 2.3.0.RELEASE | 热部署 | | Spring | 5.3.6.RELEASE | Spring基础框架 | | SpringMVC | 5.3.6.RELEASE | MVC框架 | | thymeleaf | 3.0.11.RELEASE | 模板引擎 | | Mybatis | 3.5.4 | ORM框架 | | Druid | 1.1.22 | 数据库连接池 | | Lombok | 1.18.12 | 去除Getter、Setter | | knife4j | 2.0.2 | 接口文档 | | MySQL | 5.7 | 数据库 | | Junit | 4.13 | 单元测试 | | slf4 | | 日志 | | Layui | | 前端组件 | #### 接口说明文档 - API 设计规范 - 例子:@RequestMapping("api/v1/pub/video") / @RequestMapping("api/v1/pri/video") - api 指的是api - v1 指的是版本 - pub 指的是可以公开访问 pri 指的是登录之后才能访问 - video 指的是具体的资源路径 - **使用 knife4j 生成** - 接口文档地址: - http://localhost:8380/doc.html - 账号:admin - 密码:123456 - Druid-SQL监控地址: - http://localhost:8380/druid/login.html - 账号:admin - 密码:123456 - 前端静态资源地址 https://oos.icanci.cn/app/static/webapps/ladybird-web-static/ #### 压测文档 - 使用Jmeter5.3生成 #### 规范 - 查询:queryxxx - 增加:insertxxx - 删除:deletexxx - 更新:updatexxx #### 项目上线地址 - ladybird.icanci.cn #### 性能优化 - 缓存命中率 - 缓存容量设置 - 缓存淘汰算法:FIFO、LRU - 内网压测、排除带宽 - JVM垃圾回收GC策略调整,stop the world - 数据库连接池是否合理 MySQL 3~4 千的连接数 - 数据库设计索引、字段是否合理 - 数据库设计、是否要分库分表、水平拆分还是垂直拆分 - 数据库是否需要读写分离 - 缓存或者数据库慢查询分析 SQL的执行计划 #### 核心指标 - RT响应时间 - CPU占用率 - 内存使用率 - 接口Http成功率