# bigo_server
**Repository Path**: U8tou/bigo_server
## Basic Information
- **Project Name**: bigo_server
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-08-22
- **Last Updated**: 2024-08-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 开发文档
## 开发环境配置
> vscode
>
> 在工作目录下的 .vscode 添加配置launch.json, 以方便执行debug
```js
{
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "debug",
// 执行目标文件
// "program": "${fileDirname}",
"program": "${workspaceFolder}\\a-admin\\main.go",
// 设置启动参数 dev、uat、prod
"args": [
"dev"
],
}
]
}
```
## window 环境
>构建exe可执行文件
> windows环境中,go语言的默认配置就是编译成在windows环境中可执行的exe文件
```shell
# 清理mod未引用的依赖,注意到含mod文件目录下,针对的是mod文件而不是项目
go mod tidy
# 构建、输出到某个文件夹并重命名,注意部署的时候,将a-admin的resources,也要带上
go build -o ./a-admin/aijuan-server.exe ./a-admin/main.go
# linux打包构建
go build -o ./a-admin/aijuan-server ./a-admin/main.go
```
> 若想保持在异常时不关闭cmd黑框
>
> 在app.exe同目录下,创建文本,写入以下内容,重命名文件为 launch.bat,双击执行
```shell
aijuan-server.exe
pause
```
> 构建linux可执行文件
```shell
# 如果修改成功,可以通过go env命令查看
set CGO_ENABLED=0
set GOOS=linux
go build
```
## 使用环境
### 服务监控 hertzbeat
> 文档地址:
### 分布式定时任务 XXL-JOB
> xxljob: [xxl-job: 一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 (gitee.com)](https://gitee.com/xuxueli0323/xxl-job)
### 分布式延迟任务 asyncq
> 文档地址:
>
> UI
>
> ```shell
> docker run -d --restart=always \
> --name asynqmon \
> -p 8085:8080 \
> hibiken/asynqmon --redis-addr=119.23.175.154:6379
> ```
### 分布式缓存 redis
> 文档地址:
>
> ```shell
> # 拉取镜像
> docker pull redis
> # 运行容器
> docker run -itd --restart=always --name redis -p 6379:6379 redis
> ```
### 分布式锁 redsync
> 文档:
>
> [「Go工具箱」redis官网推荐的go版本的分布式锁:redsync-腾讯云开发者社区-腾讯云 (tencent.com)](https://cloud.tencent.com/developer/article/2211973)
### 分布式文件存储 minio
> 文档地址:
>
> ```shell
> # 拉取镜像
> docker pull minio/minio
>
> # 容器部署命令 密码必须八个字符以上
> # -p:端口配置
> # -d --restart:后台运行容器,并当Docker重新启动时容器跟着启动
> # -e:配置
> # -v:挂载
> # --console-address:服务端端口
> docker run --name minio \
> -p 9000:9000 \
> -p 9001:9001 \
> -d --restart=always \
> -e "MINIO_ROOT_USER=admin" \
> -e "MINIO_ROOT_PASSWORD=QWERasd0" \
> -v /home/minio/data:/data \
> -v /home/minio/config:/root/.minio \
> minio/minio server /data \
> --console-address ":9001"
> ```