抖音大项目踩坑实录 | 青训营笔记

145 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 16 天

自己实践遇到的问题

1.ubuntu20.04无法访问github问题

ubuntu20.04无法访问github问题(未解决,NAT模式下物理机开vpn进行download)

2.主机ping通虚拟机,虚拟机ping不同主机

解决方案: 关防火墙

3.安装Hertz提示GO GET Connection refused

image.png

解决方法
go1.13之后,出现上述提示的解决方法

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOSUMDB=off

查看自己是否是root用户

4.安装Hertz工具后无法查看版本

解决方法

  1. 切换到root用户
  2. vim /etc/profile
  3. 将GOPATH添加到环境变量(GOPATH通过go env GOPATH查看)
export GOPATH=/home/liam/go
export PATH=$GOPATH/bin:$PATH
  1. 重新加载系统配置文件source /etc/profile

5.go get无法拉取仓库

image.png

解决方法
go env -w GOSUMDB=off关闭拉取验证

6.go mod tidy 出现permisssion denied问题

解决方法
升级为root权限

7.解决 Golang 升级到 1.18+ 版本后在容器中构建时出现 error obtaining VCS status: exit status 128 的问题

解决方法

  • 直接在 .dockerignore 中加入一行:
  .git
复制代码

来让 Docker 构建的时候直接不复制 .git 目录到构建环境中。 * 或者也可以丑一点,在 Dockerfile 中加入一行 rm -rf .git,当然,这样就有点诡异了,如果本地 .git 目录太大的话, COPY . 这类操作会非常的卡 * 或者你也可以把 Go 版本降级到 1.18 以下

如果你是在容器以外的地方构建应用,且你的 Git 仓库有问题(无论是权限问题还是啥)的话,在构建参数中加入一个 -buildvcs=false 即可。

8.建的是user表,但是gorm查得是users表

蛇形复数命名问题

9.git merge fork

情况描述:我fork了仓库,master创建了branch,我sync fork合并了分支,在本地与远端仓库与master仓库都不符合的情况下如何更新。
解决方法
首先sync fork同步了master仓库和我的fork远端仓库
然后按一下步骤在本地执行命令

sudo chmod -R 777 ./.git/objects/    (解决无写权限问题)
git fetch
git status
git stash   (保存本地工作)
git branch -r
git gc --prune=now
git pull
git merge origin/master
git stash pop
复制代码

image.png

image.png

参考链接
blog.csdn.net/itsxyu/arti…

git提交到自己的仓库

git status
git add .
git commit -m "评论"
git push
复制代码

10.protobuf文件需要相互引用(使用kitex框架)

解决方法
设置goland protobuf setting

image.png

放在同一个包下然后在要生成的文件夹下执行kitex命令

kitex -module dousheng -I /home/liam/Project/JccJ_J/idl -service publish publish.proto

11. minio调用返回的url过长,无法存入数据库

解决方法

截取?以前的字符串

衍生问题: 客户端无权限访问minio服务端

解决方法
把minio的bucket设置为公开

12.重启goland编译器后一直出于indexing和update indexing的状态

解决方法
因为开nginx生成了/data和/log文件夹,里面很多杂乱数据,将这两个文件夹设置为exluded,此外,我把config文件夹也excluded了

参考

13.判断用户是视频是否有点赞关系时错误

发现问题:  gorm中使用Asscoation(string).Find(&xx,xx)时,如果没有找到并不会返回gorm.ErrRecordNotFound类型错误

14.判断用户是视频是否有关注关系时错误

发现问题:  表中没找到的情况和err一起返回导致服务终止,空指针问题

15.feed流不是按发布顺序排列

发现问题:  按更新顺序排列了,gorm表中默认有

CreateAt `created_at`
UpdatedAt `updated_at`
DeletedAt `deleted_at`
复制代码

自己编程中,重复定义了UpdatedAt, 并以此作为feed的时间排序,导致只要某个视频被操作过,feed倒序排序就靠前 解决方法
删除自定义的UpdatedAt字段。使用created_at排序