跳到主要内容

快速上手

让我们花几分钟内快速开启EventMatrix的使用。

准备工作

通过搭建一个EventMatrix 的开发环境开始体验。

环境要求

  • Golang 1.23 及以上
  • 默认使用 sqlite,如果需要使用其他数据库则先安装数据库服务.目前支持 postgres/sqlite/mysql,但 mysql 未充分测试

运行网关(Gateway)

1、先下载网关程序

wget https://github.com/garrickvan/event-matrix/releases/download/v0.7.0/gateway-0.7.0-darwin-amd64

2、参考gateway 目录下的配置网关启动参数文件 cfg.yaml,然后启动网关程序。

./gateway-0.7.0-darwin-amd64

3、打开浏览器访问网关公域地址,注意端口号和配置保持一致:http://localhost:3030/event_gateway?verify=0

4、输入用户名和密码,点击登录,如果登录成功,则会跳转到管理后台。

5、到系统管理->基础设置->Worker 接入秘钥,点击随机生成,生成 Worker 密钥,用于 Worker 接入。

6、重启一下 gateway 程序。

创建工作端(Worker)

1、创建一个文件夹,以用来构建 Go 项目。

mkdir my-worker
cd my-worker

2、添加 worker 的 main.go 文件,内容如下:

package main

import (
"github.com/garrickvan/event-matrix/utils"
"github.com/garrickvan/event-matrix/utils/logx"
"github.com/garrickvan/event-matrix/worker"
"github.com/garrickvan/event-matrix/worker/plugins/aiassistant"
"github.com/garrickvan/event-matrix/worker/plugins/logcenter"
"github.com/garrickvan/event-matrix/worker/plugins/taskcenter"
"github.com/garrickvan/event-matrix/worker/types"
)

func main() {
// 获取环境变量
secret := utils.GetEnv("IntranetSecret")
algor := utils.GetEnv("IntranetSecretAlgor")
gatewayEndpoint := utils.GetEnv("GatewayIntranetEndpoint")

// 初始化配置
svr := worker.NewTwoWayWorkerServer(worker.TwoWayWorkerServerSettings{
CfgKey: "demo_worker",
IntranetSecret: secret,
IntranetSecretAlgor: algor,
GatewayIntranetEndpoint: gatewayEndpoint,
})
// 初始化日志中心插件
lc := logcenter.NewLogCenter(svr, "sqlite_runtime_log", "sqlite_event_log")
if err := lc.Setup(); err != nil {
logx.Log().Error(err.Error())
}
// 初始化任务中心插件
tc := taskcenter.NewTaskCenter(svr, "sql_task", 500) // 最高同时调起500个异步任务
if err := tc.Setup(); err != nil {
logx.Log().Error(err.Error())
}
// 初始化AI助手插件
ac := aiassistant.NewAiAssistantCenter(svr, "")
if err := ac.Setup(); err != nil {
logx.Log().Error(err.Error())
}
// 注册worker
if err := svr.RegisterWorker(types.NewWorker("demo", "0.0.1", "user", "user_info", "sql_demo", 60)); err != nil {
logx.Log().Error(err.Error())
}
// 启动日志提交
cf := svr.Cfg()
logcenter.NewLogDaemonSubmitter(cf.LogLocation).StartDaemon()
// 启动HTTP服务
svr.Start()
}

3、配置环境变量,可以通过系统变量设置或 Worker 目录中创建一个.env 或 init.env 文件,包括:

  • IntranetSecret:网关秘钥,用于验证 Worker 身份,在前面创建的网关管理后台中可以获取
  • IntranetSecretAlgor:网关秘钥的加密算法,默认使用 AES-256,需要保持与网关程序一致
  • GatewayIntranetEndpoint:网关的内网地址,用于 Worker 连接网关,格式为 ip:port,根据网关的配置来设置

4、创建项目;先回到 gateway 管理后台,项目管理->添加项目,输入项目名称、项目代号(demo必须对应前面配置的值),点添加。

5、创建版本,先回到 gateway 管理后台,开发迭代页面,最上选择项目 demo,然后点设置图标,打开版本管理,输入版本号 0.0.1,点新建,然后一定要点击上线,否则版本不会生效。

6、创建上下文,先回到 gateway 管理后台,开发迭代页面,最上选择项目 demo,然后选择上线的版本 0.0.1,点下方的设置按钮,创建上下文 user,代号必须对应前面的配置值。

7、创建实体,先回到 gateway 管理后台,开发迭代页面,最上选择项目 demo,然后选择上线的版本 0.0.1,选中上下文 user,点表格右上角的新增实体 user_info,代号必须对应前面的配置值。

8、创建数据库配置,先回到 gateway 管理后台,系统管理->配置管理,点新增,根据实际情况填写数据库配置,配置键名一定要跟上面初始代码一致,需要创建 sqlite_runtime_log、sqlite_event_log、sql_task、sql_demo 四个数据库并配置正确的位置或连接信息,然后点击保存。

启动运行

确保已启动网关程序,如果用到 Postgres 或 MySQL 数据库,请确保数据库服务已启动,并已经正确配置好连接信息,命令行处于 Worker 项目根目录下:

go mod tidy
go run main.go

如果一切顺利,Worker 程序会启动,这时可以通过 Gateway 后台的开发迭代来开发事件接口。