Skip to content

新版Dubbo Admin开发者指南

robb edited this page Mar 29, 2026 · 21 revisions

后端

Run in local

需要先按照打包步骤把前端打好包

Goland(Recommend)

新增一个go build configuration,配置如下:

image

Command

go run app/dubbo-admin/main.go run -c app/dubbo-admin/dubbo-admin.yaml

Goland import配置

为了统一import的风格,使用goland的开发者可以参照以下说明进行设置:

  1. 打开设置,找到Go > Imports
image
  1. Editor > Code Style > Go,勾选如下选项
image

使用其他IDE的开发者可以参考Goland的配置进行自定义。

Resource的定义和更新

  1. api下定义/更新proto
  2. 使用protoc生成对应的pb.go文件
# 在项目根目录下执行
protoc -I. --go_out=. --go_opt=module=github.com/apache/dubbo-admin api/mesh/v1alpha1/*.proto
  1. 在scripts/resourcegen目录下使用resource-gen工具来生成相应的resource文件。该工具需要指定包名,根据包下的所有proto文件,生成对应的resource,并存放在指定目录下
# -output需要替换成你的项目根目录+resource路径
cd scripts/resourcegen
go run ./ -package mesh -output /root/go-projects/dubbo-admin/pkg/core/resource/apis/mesh/v1alpha1/

Error Handle

Error定义

golang内置的error接口只有一个Error方法,返回一个string类型的错误信息,在admin前端上,时常会把整个错误返回回去,且不带额外的标识,因此我们需要统一error的定义

type Error interface {
	Code() ErrorCode
	Message() string
	Error() string
	String() string
}

其中Code()返回的是一个错误码的“枚举”,我们在new/wrap一个error时都应该使用这个Error,便于上层处理/展示错误信息

Error处理

对于一个异常情况,我们需要new一个error时,请使用errors.New()/fmt.ErrorOf()来new一个error。注意,这里的errors不是github.com/pkg/errors,而是golang内置的errors包! 对于三方包抛出来的error,我们都应该使用fmt.ErrorOf("%w", err)或bizerror.Wrap来包装一下,并给其指定一个ErrorCode。 对于我们自己代码抛出来的error,这个时候需要视情况使用fmt.ErrorOf/bizerror.Wrap,一般情况下我们可以打一个错误日志来追踪一下报错路径。

ErrorCode定义

ErrorCode定义可以宽泛可以精细,大部分情况下我们使用一个宽泛的Error即可。比如Store层面的error,我们可以统一定义一个StoreError,在message层面体现出差异。少部分情况下是需要精细一些的,比如前端依赖一个特定的ErrorCode来执行一段逻辑,这时候就需要单独定义一个ErrorCode

前端

Run in local

  1. 下载依赖
yarn install
  1. 本地启动
yarn dev
  1. 访问http://localhost:8881/admin

打包

  1. 打成dist包
yarn build
  1. 整个dist目录复制到app/dubbo-ui下
cp -r ui-vue3/dist app/dubbo-ui/

Clone this wiki locally