GoMeEdu服务
环境要求
GoMeEdu 程序是使用 golang 开发的实现 meedu 的直播部分功能的程序。它提供了高性能的聊天室的服务和部分直播业务接口,为直播系统稳定运行承担不小的力量。在您编译 gomeedu 程序之前,需要您本地安装有 go 程序。
请打开 https://go.dev/dl/ 下载最新版本的 golang 软件包并进行安装,安装完成之后,可以在命令行中执行
go version
go version go1.20.6 darwin/arm64
看到当前安装的 golang 版本。
编译程序
交付给客户的程序源代码中,有一个 go-meedu-v4.9.1.zip
的压缩包(注意,随着版本的迭代,v4.9.1
这个版本号可能会变更)。
解压此压缩包,并进入到解压后的目录,执行下面命令:
go generate
之后再执行
go build -o go-meedu-amd64 -trimpath -ldflags "-s -w" .
命令解释如下:
参数 | 解释 |
---|---|
-o go-meedu-amd64 | 指定输出文件的名称为 go-meedu-amd64 |
-trimpath | 在构建过程中去除构建路径信息,以减小可执行文件的大小 |
-ldflags "-s -w" | 设置链接器的标志。 -s 表示去除符号表信息, -w 表示去除 DWARF 调试信息。这些标志有助于减小可执行文件的大小和保护源代码的安全性。 |
. | 表示当前目录,即构建当前目录下的 Go 代码。 |
上述命令执行完成,将会在目录下生成 go-meedu-amd64
的可执行文件,此文件在接下来的部署中需要用到。
部署程序
一、上传go-meedu程序
输入go-meedu,回车,并点击go-meedu进入到此目录中:
选中之前编译生成的
go-meedu-amd64
可执行文件上传。
二、创建 config.yaml
文件并配置
配置文件模板
# 系统配置
system:
env: "public" # develop/public
addr: 8787
# IP限流:2分钟240次=>2q/s
iplimit-count: 240
iplimit-time: 120
laravel-cache-prefix: "" # laravel应用的缓存前缀
internal-key: "" # 内部交互的key
# JWT配置
jwt:
signing-key: "meedu"
expires-time: 604800 # 7天
buffer-time: 86400 # 1天
issuer: "meedu"
# Redis配置
redis:
db: 0
addr: "127.0.0.1:6379"
password: ""
# Mysql配置
mysql:
dsn:
sources: "数据库用户:数据库密码@tcp(数据库host:数据库端口)/数据库名?charset=utf8mb4"
replicas: ""
max-idle-conns: 10
max-open-conns: 100
下面将逐个介绍需要修改的配置
2.1 缓存前缀 laravel-cache-prefix
配置
此程序是使用 Go 语言开发并配合 meedu 进行使用的,因此为了让此程序能够正常的访问 meedu 程序产生的 redis 缓存,需要进行缓存的配置。进入到 meedu 的 API 程序的根目录,打开 .env
文件,该文件的第一行就是 APP_NAME
,如下图所示:
如果您这里是中文,那么请将此处的值改为英文。拿上图举例,上图中
APP_NAME
的值为 MeEdu
,将它转换为小写就是:meedu
。因此,通过这个我们就可以得到缓存前缀的值为:meedu_cache
。
2.2 内部交互key internal-key
配置
meedu 的直播模块内部需要与该程序进行数据通信,为了安全需要对数据加密并校验,因此需要配置内部交互key。首先,我们打开这个网址 https://suijimimashengcheng.bmcx.com 该网址是一个随机字符串生成器,我们按照下图操作:
将生成的字符串复制,配置到
config.yaml
文件中的 internal-key
配置:
同时,打开 meedu 的后台界面程序,进入到系统-系统配置-直播服务配置-直播聊天服务配置-聊天服务key:
2.3 jwt.signing-key
此程序是使用 Go 语言开发并配合 meedu 进行使用的,为了让此程序能够正确解析 meedu 程序发行的用户 token 需要为此程序配置 meedu 的 API 程序的 JwtKey。进入到 meedu 的 API 程序根目录,打开 .env
文件,找到 JWT_SECRET
,如下图:
这里就是我们需要的 JwtKey 。打开 go-meedu 的
config.yaml
文件,配置到下图中:
三、运行程序
可以看到“已启动”
四、配置对外服务
到这里,go-meedu的服务配置完成。您可以在浏览器输入 https://go-api.meedu.com
访问 go-meedu 服务了。