From d36676e5150370a76c4de93d343465b99b425a94 Mon Sep 17 00:00:00 2001 From: shiqinfeng <150627601@qq.com> Date: Sun, 31 Mar 2024 13:09:00 +0800 Subject: [PATCH] update in mac --- .dockerignore | 1 + README.md | 189 +++++++++++++++--- app/gomono-bff/api/v1/bff_http.pb.go | 22 +- app/gomono-bff/cmd/wire_gen.go | 2 +- app/gomono-bff/internal/ports/http.go | 2 +- .../api/v1/error_reason.pb.go | 2 +- app/gomono-biz-trainer/cmd/wire_gen.go | 2 +- .../api/v1/error_reason.pb.go | 2 +- app/gomono-biz-training/cmd/wire_gen.go | 2 +- .../internal/conf/training.pb.go | 2 +- deploy/docker/README.md | 10 +- go.mod | 5 +- go.sum | 21 +- 13 files changed, 209 insertions(+), 53 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3c6742f --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +deploy \ No newline at end of file diff --git a/README.md b/README.md index 19f3326..e7f04c4 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,107 @@ 本框架基于kratos的大仓模式,结合了Kratos-layout和ThreeDotLabs的最佳实践,目录有所调整,技术架构和目录支持DDD、CQRS,解耦业务逻辑和技术框架,能够有效应对复杂的业务逻辑的开发。 +## 目录说明 -## 1 编译和部署 +```bash + +├── api +│ └── user +│ └── v1 +├── app +│ ├── gomono-admin +│ ├── gomono-bff +│ │ ├── api +│ │ │ └── v1 +│ │ ├── cmd +│ │ └── internal +│ │ ├── adapters +│ │ ├── application +│ │ ├── conf +│ │ ├── ports +│ │ └── service +│ ├── gomono-biz-trainer +│ │ ├── api +│ │ │ └── v1 +│ │ ├── cmd +│ │ └── internal +│ │ ├── adapters +│ │ ├── application +│ │ │ ├── command +│ │ │ └── query +│ │ ├── conf +│ │ ├── domain +│ │ │ └── hour +│ │ ├── ports +│ │ └── service +│ ├── gomono-biz-training +│ │ ├── api +│ │ │ └── v1 +│ │ ├── cmd +│ │ └── internal +│ │ ├── adapters +│ │ ├── application +│ │ │ ├── command +│ │ │ └── query +│ │ ├── conf +│ │ ├── domain +│ │ │ └── training +│ │ ├── ports +│ │ └── service +│ ├── gomono-gateway +│ └── gomono-task-migration +├── deploy +│ ├── docker +│ │ ├── biz +│ │ ├── biz-bff +│ │ ├── biz-gateway +│ │ ├── cluster-init +│ │ ├── images +│ │ ├── infra-docker-registry +│ │ ├── infra-mysql +│ │ ├── infra-nacos +│ │ ├── infra-prometheus +│ │ └── infra-redis +│ ├── k8s +│ └── standalone +│ ├── bin +│ └── config +├── third_party +│ ├── errors +│ ├── google +│ │ ├── api +│ │ └── protobuf +│ │ └── compiler +│ ├── openapi +│ │ └── v3 +│ └── validate +└── utils + ├── auth + ├── client + ├── conf + ├── container + ├── decorator + ├── discovery + ├── log + ├── registrar + ├── trace + └── types +``` + +- api 接口定义输出文档 +- app 业务程序,一个应用对应一个目录,每个目录内部对应一个标准的golang工程,典型的文件夹包括: + - `api` 接口定义 + - `cmd` 主命令/子命令入口定义 + - `internal` 应用的内部模块,不可以被外部应用引用 + - `main.go` 主程序入口 +- deploy 程序部署相关的自动化部署脚本,典型的部署脚本包括: + - docker集群 + - k8s + - shandalone裸机部署 +- third_party 第三方依赖,典型的有googl的基础功能的pb文件 +- utils 包含所有应用都会用到的基础工具包,如果该工具包在所有项目中都通用,可以独立出来变成公司级别的kit基础包 + +## 1 docker集群的环境准备和快速部署 ### 1.1 环境准备 @@ -64,6 +163,7 @@ ansible.cfg hosts roles 默认的配置在 `/etc/ansible/hosts` 中,追加自己的配置,配置文件demo在 `./hosts.ansible`. 配置字段说明: + - 方括号[]中是组名,用于对业务/功能系统进行分类,便于对不同系统进行个别的管理。下面为主机名称 - ansible_user 指定登录该服务器的用户名,如果和当前系统已登录的用户名一样,则不需要指定。 - 注意:如果修改组名,需同步更新playbook中的hosts字段 @@ -131,11 +231,13 @@ node1 become=True become_method=sudo ``` + ### 1.4 设置所有工作节点免密登录 原理:将master节点的的公钥复制到节点上 登录master管理节点,执行: + ```bash ansible-playbook ./deploy/docker/cluster-init/ssh_login_no_password.yml ``` @@ -148,66 +250,106 @@ ansible-playbook ./deploy/docker/cluster-init/ssh_login_no_password.yml ansible-playbook ./deploy/docker/cluster-init/modify_hostname.yml ``` -### 1.5 批量设置dns +### 1.6 批量设置dns ```bash ansible-playbook ./deploy/docker/cluster-init/config_dns.yml ``` -## 2部署基础设施 +## 2 部署基础设施 + +复制deploy文件夹到管理节点,并在管理节点上执行下述操作。 1. 安装docker和docker-compose ```bash cd goMono - ansible-playbook ./deploy/docker/infra-docker/install_docker_online.yml + ansible-playbook ./deploy/docker/infra-docker-registry/install_docker_online.yml ``` - > 注意:如果执行palybook时报错: - `fatal: [node1]: FAILED! => {"changed": false, "msg": "The Python 2 bindings for rpm are needed for this module. If you require Python 3 support use the `dnf` Ansible module instead.. The Python 2 yum module is needed for this module. If you require Python 3 support use the dnf Ansible module instead."}`, 需要将`/etc/ansible/hosts`中的`ansible_python_interpreter=/usr/bin/python3` 改为 `ansible_python_interpreter=/usr/bin/python2`, 或者,在ansible-playbook命令后面添加参数:`-e ansible_python_interpreter=/usr/bin/python2` + > 注意:如果执行palybook时报错: + ` fatal: [node1]: FAILED! => {"changed": false, "msg": "The Python 2 bindings for rpm are needed for this module. If you require Python 3 support use the `dnf`Ansible module instead.. The Python 2 yum module is needed for this module. If you require Python 3 support use the dnf Ansible module instead."}`, 需要将`/etc/ansible/hosts`中的`ansible_python_interpreter=/usr/bin/python3` 改为 `ansible_python_interpreter=/usr/bin/python2`, 或者,在ansible-playbook命令后面添加参数:`-e ansible_python_interpreter=/usr/bin/python2` 2. 部署镜像私有仓库 - - 项目源码来自[这里](https://github.com/Joxit/docker-registry-ui), 部署操作: + + 私有仓库的项目源码来自[这里](https://github.com/Joxit/docker-registry-ui), 部署操作: ```bash - cd goMono - ansible-playbook ./deploy/docker/infra-docker/install_docker_registry.yml + ansible-playbook ./deploy/docker/infra-docker-registry/install_docker_registry.yml ``` 部署完成后,私有仓库在 `http://<域名/IP>:8080/` 上提供服务。(使用域名时,可能需要配置本地DNS) -3. 拉取和打包镜像 +3. 拉取和打包基础设施的镜像 ```bash - cd goMono - ansible-playbook ./deploy/docker/ansible_playbook/prepare-infra-images.yml + ansible-playbook ./deploy/docker/images/prepare-infra-images.yml ``` 4. 部署nacos - ```bash - cd goMono - ansible-playbook ./deploy/docker/ansible_playbook/install_nacos.yml - ``` + 部署 + + ```bash + ansible-playbook ./deploy/docker/infra-nacos/install.yml + ``` + + 停用 + + ```bash + ansible-playbook ./deploy/docker/infra-nacos/stop.yml + ``` 5. 部署prometheus和grafana - ```bash - cd goMono - ansible-playbook ./deploy/docker/install_prometheus_grafana.yml - ``` + 部署 + + ```bash + ansible-playbook ./deploy/docker/infra-prometheus/install.yml + ``` + + 停用 + + ```bash + ansible-playbook ./deploy/docker/infra-prometheus/stop.yml + ``` 注意: - 默认只设置了nacos的数据源,如果需要增加其他数据源,修改 `./deploy/docker/infra-prometheus/config_prometheus.env` 配置 - nacos的dashboard配置是: `deploy/docker/infra-prometheus/config_nacos_grafana_dashboard.json` -# 开发微服务 +6. 部署mysql -## 添加自己的服务 + 部署 + + ```bash + ansible-playbook ./deploy/docker/infra-mysql/install.yml + ``` + + 停用 + ```bash + ansible-playbook ./deploy/docker/infra-mysql/stop.yml + ``` +7. 部署redis + + 部署 + + ```bash + ansible-playbook ./deploy/docker/infra-redis/install.yml + ``` + + 停用 + + ```bash + ansible-playbook ./deploy/docker/infra-redis/stop.yml + ``` + +# 开发微服务 + +## 添加自己的服务 ## 初始化和编译 @@ -241,7 +383,6 @@ docker run --rm -p 8000:8000 -p 9000:9000 -v :/data/conf ## 框架和功能详解 - #### 领域层 领域层的职责范围和设计规范 diff --git a/app/gomono-bff/api/v1/bff_http.pb.go b/app/gomono-bff/api/v1/bff_http.pb.go index 124cb47..bda0f95 100644 --- a/app/gomono-bff/api/v1/bff_http.pb.go +++ b/app/gomono-bff/api/v1/bff_http.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go-http. DO NOT EDIT. // versions: -// - protoc-gen-go-http v2.7.3 +// - protoc-gen-go-http v2.7.2 // - protoc v4.25.0 // source: gomono-bff/api/v1/bff.proto @@ -310,7 +310,7 @@ func (c *BFFHTTPClientImpl) ApproveRescheduleTraining(ctx context.Context, in *v if err != nil { return nil, err } - return &out, nil + return &out, err } func (c *BFFHTTPClientImpl) CancelTraining(ctx context.Context, in *v1.CancelTrainingRequest, opts ...http.CallOption) (*emptypb.Empty, error) { @@ -323,7 +323,7 @@ func (c *BFFHTTPClientImpl) CancelTraining(ctx context.Context, in *v1.CancelTra if err != nil { return nil, err } - return &out, nil + return &out, err } func (c *BFFHTTPClientImpl) CreateTraining(ctx context.Context, in *v1.CreateTrainingRequest, opts ...http.CallOption) (*v1.CreateTrainingResponse, error) { @@ -336,7 +336,7 @@ func (c *BFFHTTPClientImpl) CreateTraining(ctx context.Context, in *v1.CreateTra if err != nil { return nil, err } - return &out, nil + return &out, err } func (c *BFFHTTPClientImpl) GetTrainerAvailableHours(ctx context.Context, in *GetTrainerAvailableHoursRequest, opts ...http.CallOption) (*GetTrainerAvailableHoursRespone, error) { @@ -349,7 +349,7 @@ func (c *BFFHTTPClientImpl) GetTrainerAvailableHours(ctx context.Context, in *Ge if err != nil { return nil, err } - return &out, nil + return &out, err } func (c *BFFHTTPClientImpl) GetTraining(ctx context.Context, in *emptypb.Empty, opts ...http.CallOption) (*v1.GetTrainingResponse, error) { @@ -362,7 +362,7 @@ func (c *BFFHTTPClientImpl) GetTraining(ctx context.Context, in *emptypb.Empty, if err != nil { return nil, err } - return &out, nil + return &out, err } func (c *BFFHTTPClientImpl) MakeHourAvailable(ctx context.Context, in *MakeHourAvailableRequest, opts ...http.CallOption) (*emptypb.Empty, error) { @@ -375,7 +375,7 @@ func (c *BFFHTTPClientImpl) MakeHourAvailable(ctx context.Context, in *MakeHourA if err != nil { return nil, err } - return &out, nil + return &out, err } func (c *BFFHTTPClientImpl) MakeHourUnavailable(ctx context.Context, in *MakeHourUnavailableRequest, opts ...http.CallOption) (*emptypb.Empty, error) { @@ -388,7 +388,7 @@ func (c *BFFHTTPClientImpl) MakeHourUnavailable(ctx context.Context, in *MakeHou if err != nil { return nil, err } - return &out, nil + return &out, err } func (c *BFFHTTPClientImpl) RejectRescheduleTraining(ctx context.Context, in *v1.RejectRescheduleTrainingRequest, opts ...http.CallOption) (*emptypb.Empty, error) { @@ -401,7 +401,7 @@ func (c *BFFHTTPClientImpl) RejectRescheduleTraining(ctx context.Context, in *v1 if err != nil { return nil, err } - return &out, nil + return &out, err } func (c *BFFHTTPClientImpl) RequestRescheduleTraining(ctx context.Context, in *v1.RequestRescheduleTrainingRequest, opts ...http.CallOption) (*emptypb.Empty, error) { @@ -414,7 +414,7 @@ func (c *BFFHTTPClientImpl) RequestRescheduleTraining(ctx context.Context, in *v if err != nil { return nil, err } - return &out, nil + return &out, err } func (c *BFFHTTPClientImpl) RescheduleTraining(ctx context.Context, in *v1.RescheduleTrainingRequest, opts ...http.CallOption) (*emptypb.Empty, error) { @@ -427,5 +427,5 @@ func (c *BFFHTTPClientImpl) RescheduleTraining(ctx context.Context, in *v1.Resch if err != nil { return nil, err } - return &out, nil + return &out, err } diff --git a/app/gomono-bff/cmd/wire_gen.go b/app/gomono-bff/cmd/wire_gen.go index 20d6081..b8874ec 100644 --- a/app/gomono-bff/cmd/wire_gen.go +++ b/app/gomono-bff/cmd/wire_gen.go @@ -1,6 +1,6 @@ // Code generated by Wire. DO NOT EDIT. -//go:generate go run -mod=mod github.com/google/wire/cmd/wire +//go:generate go run github.com/google/wire/cmd/wire //go:build !wireinject // +build !wireinject diff --git a/app/gomono-bff/internal/ports/http.go b/app/gomono-bff/internal/ports/http.go index d7cb785..c8e30b6 100644 --- a/app/gomono-bff/internal/ports/http.go +++ b/app/gomono-bff/internal/ports/http.go @@ -13,7 +13,7 @@ import ( "github.com/go-kratos/kratos/v2/middleware/tracing" "github.com/go-kratos/kratos/v2/transport/http" "github.com/go-kratos/swagger-api/openapiv2" - "github.com/golang-jwt/jwt/v4" + "github.com/golang-jwt/jwt/v5" "github.com/gorilla/handlers" "github.com/prometheus/client_golang/prometheus/promhttp" v1 "github.com/shiqinfeng1/goMono/app/gomono-bff/api/v1" diff --git a/app/gomono-biz-trainer/api/v1/error_reason.pb.go b/app/gomono-biz-trainer/api/v1/error_reason.pb.go index edad4a2..1393aeb 100644 --- a/app/gomono-biz-trainer/api/v1/error_reason.pb.go +++ b/app/gomono-biz-trainer/api/v1/error_reason.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.33.0 +// protoc-gen-go v1.31.0 // protoc v4.25.0 // source: gomono-biz-trainer/api/v1/error_reason.proto diff --git a/app/gomono-biz-trainer/cmd/wire_gen.go b/app/gomono-biz-trainer/cmd/wire_gen.go index f5e095e..771b1a5 100644 --- a/app/gomono-biz-trainer/cmd/wire_gen.go +++ b/app/gomono-biz-trainer/cmd/wire_gen.go @@ -1,6 +1,6 @@ // Code generated by Wire. DO NOT EDIT. -//go:generate go run -mod=mod github.com/google/wire/cmd/wire +//go:generate go run github.com/google/wire/cmd/wire //go:build !wireinject // +build !wireinject diff --git a/app/gomono-biz-training/api/v1/error_reason.pb.go b/app/gomono-biz-training/api/v1/error_reason.pb.go index 6c85d3b..a37d366 100644 --- a/app/gomono-biz-training/api/v1/error_reason.pb.go +++ b/app/gomono-biz-training/api/v1/error_reason.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.33.0 +// protoc-gen-go v1.31.0 // protoc v4.25.0 // source: gomono-biz-training/api/v1/error_reason.proto diff --git a/app/gomono-biz-training/cmd/wire_gen.go b/app/gomono-biz-training/cmd/wire_gen.go index 1a19a18..6df1127 100644 --- a/app/gomono-biz-training/cmd/wire_gen.go +++ b/app/gomono-biz-training/cmd/wire_gen.go @@ -1,6 +1,6 @@ // Code generated by Wire. DO NOT EDIT. -//go:generate go run -mod=mod github.com/google/wire/cmd/wire +//go:generate go run github.com/google/wire/cmd/wire //go:build !wireinject // +build !wireinject diff --git a/app/gomono-biz-training/internal/conf/training.pb.go b/app/gomono-biz-training/internal/conf/training.pb.go index f8972c4..ac259bb 100644 --- a/app/gomono-biz-training/internal/conf/training.pb.go +++ b/app/gomono-biz-training/internal/conf/training.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.33.0 +// protoc-gen-go v1.31.0 // protoc v4.25.0 // source: gomono-biz-training/internal/conf/training.proto diff --git a/deploy/docker/README.md b/deploy/docker/README.md index f4f29c4..5f14ba9 100644 --- a/deploy/docker/README.md +++ b/deploy/docker/README.md @@ -1,6 +1,8 @@ -当前文件夹下的内容为: 通过absilbe使用docker在服务器集群上部署本系统 -- `ansible_playbook`目录存放ansible运行脚本 -- `tmpl`目录存放配置文件模板和docker-compose文件模板,这些模板文件在ansible_playbook中被使用,并且其中的变量在执行ansible_playbook 命令时被替换 -- `ansible_playbook/var.yaml`中存放所有可配置的变量,可按照实际环境修改 +当前文件夹下的内容为: 通过absilbe使用docker在服务器集群上部署基础设施和应用 + +`infra-*`目录存放部署基础设施的ansible运行脚本,其中目录下的 + - `vars.yaml`中存放所有可配置的变量,可按照实际环境修改 + - `install.yml` 是部署脚本 + - `stop.yml` 是停止运行脚本 diff --git a/go.mod b/go.mod index ccc2142..6c2e3a7 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/shiqinfeng1/goMono -go 1.19 +go 1.22 require ( cloud.google.com/go/compute/metadata v0.2.3 @@ -17,7 +17,7 @@ require ( github.com/go-kratos/swagger-api v1.0.1 github.com/go-sql-driver/mysql v1.7.1 github.com/gogf/gf/v2 v2.6.1 - github.com/golang-jwt/jwt/v4 v4.5.0 + github.com/golang-jwt/jwt/v5 v5.2.1 github.com/golang/protobuf v1.5.3 github.com/google/uuid v1.4.0 github.com/google/wire v0.5.0 @@ -75,7 +75,6 @@ require ( github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-playground/form/v4 v4.2.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v5 v5.1.0 // indirect github.com/golang/glog v1.1.2 // indirect github.com/gorilla/mux v1.8.1 // indirect github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect diff --git a/go.sum b/go.sum index d6d70c0..b81ecea 100644 --- a/go.sum +++ b/go.sum @@ -36,6 +36,7 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0= github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= @@ -56,6 +57,7 @@ github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqy github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -73,6 +75,7 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k= +github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/errors v1.11.1 h1:xSEW75zKaKCWzR3OfxXUxgrk/NtT4G1MiOv5lWZazG8= github.com/cockroachdb/errors v1.11.1/go.mod h1:8MUxA3Gi6b25tYlFEBGLf+D8aISL+M4MIpiWMSNRfxw= github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= @@ -105,8 +108,10 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.11.2-0.20230627204322-7d0032219fcb h1:kxNVXsNro/lpR5WD+P1FI/yUHn2G03Glber3k8cQL2Y= +github.com/envoyproxy/go-control-plane v0.11.2-0.20230627204322-7d0032219fcb/go.mod h1:GxGqnjWzl1Gz8WfAfMJSfhvsi4EPZayRb25nLHDWXyA= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v1.0.2 h1:QkIBuU5k+x7/QXPvPPnWXWlCdaBFApVqftFV6k087DA= +github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= @@ -169,10 +174,8 @@ github.com/gogf/gf/v2 v2.6.1/go.mod h1:x2XONYcI4hRQ/4gMNbWHmZrNzSEIg20s2NULbzom5 github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v5 v5.1.0 h1:UGKbA/IPjtS6zLcdB7i5TyACMgSbOTiR8qzXgw8HWQU= -github.com/golang-jwt/jwt/v5 v5.1.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= +github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v0.0.0-20210429001901-424d2337a529/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= @@ -247,7 +250,9 @@ github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB7 github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grokify/html-strip-tags-go v0.0.1 h1:0fThFwLbW7P/kOiTBs03FsJSV9RM2M/Q/MOnCQxKMo0= +github.com/grokify/html-strip-tags-go v0.0.1/go.mod h1:2Su6romC5/1VXOQMaWL2yb618ARB8iVo6/DR99A6d78= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.5.0/go.mod h1:r1hZAcvfFXuYmcKyCJI9wlyOPIZUJl6FCB8Cpca/NLE= @@ -294,6 +299,7 @@ github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.6 h1:dNPt6NO46WmLVt2DLNpwczCmdV5boIZ6g/tlDrlRUbg= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -311,6 +317,7 @@ github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7P github.com/nacos-group/nacos-sdk-go v1.1.4 h1:qyrZ7HTWM4aeymFfqnbgNRERh7TWuER10pCB7ddRcTY= github.com/nacos-group/nacos-sdk-go v1.1.4/go.mod h1:cBv9wy5iObs7khOqov1ERFQrCuTR4ILpgaiaVMxEmGI= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= @@ -318,6 +325,7 @@ github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zM github.com/philhofer/fwd v1.1.1 h1:GdGcTjf5RNAxwS4QLsiMzJYj5KEvPJD3Abr261yRQXQ= github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -328,6 +336,7 @@ github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:Om github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b h1:0LFwY6Q3gMACTjAbMZBjXAqTOzOwFaj2Ld6cjeQ7Rig= github.com/power-devops/perfstat v0.0.0-20221212215047-62379fc7944b/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= +github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -340,6 +349,7 @@ github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/ github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= +github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= @@ -423,6 +433,7 @@ go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/automaxprocs v1.5.1 h1:e1YG66Lrk73dn4qhg8WFSvhF0JuFQF0ERIp4rpuV8Qk= go.uber.org/automaxprocs v1.5.1/go.mod h1:BF4eumQw0P9GtnuxxovUd06vwm1o18oMzFtK66vU6XU= go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= +go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= @@ -572,6 +583,7 @@ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220922220347-f3bd1da661af h1:Yx9k8YCG3dvF87UAn2tu2HQLf2dt/eR1bXxpLMWeH+Y= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -724,6 +736,7 @@ google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=