1. 项目介绍
来源:字节后端青训营。感觉项目周期较短,也适合目前阶段自己的Go水平,打算跟着大佬们的思路写一下这个项目。原github地址:github.com/HammerCloth…
2. 技术栈
- mysql
- redis
- gin
- gorm
- rabbitmq
3. 项目环境搭建
服务器配置:ARM CentOS7 虚拟机,中间件mysql、redis、rabbitmq使用docker部署,vsftpd与ffmpeg暂时没有合适的arm镜像,后期找到了使用docker-compose文件部署整个环境
- ffmpeg:ARM Linux安装ffmpeg
- vsftpd:ARM CentOS7安装vsftpd
- docker:ARM CentOs7安装Docker
- mysql:根据
MYSQL_ROOT_PASSWORD修改自己的密码
docker run -d -p 3306:3306 --restart=always -v /auroras/mysql/log:/var/log/mysql -v /auroras/mysql/data:/var/lib/mysql -v /auroras/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql
- redis:根据参数
requirepass修改自己的密码
docker run --name redis --restart=always -p 6379:6379 -d redis --requirepass "123456"
- rabbitmq:默认用户名和密码都是
guest
docker run --name rabbit --restart=always -p 15672:15672 -p 5672:5672 -d rabbitmq:management
4. 克隆并运行项目
克隆代码
git clone https://github.com/HammerCloth/tiktok.git
下载依赖
go mod tify
新增数据库,导入表结构
修改配置文件
config.go、dao/initDao.go、/middleware/rabbitmq/rabbitMQ.go、/middleware/redis/redis.go
启动项目
测试用户相关接口
5. 相关调整
- 使用
json作为前后端数据交互格式 - 使用
viper解析配置文件 - 使用
zap记录日志 - 使用
gin的binding来绑定校验输入参数