Compare commits

...

10 Commits
1.0.2 ... main

Author SHA1 Message Date
5835cb8de1 Merge branch 'main' of https://gitea-inner.fontree.cn/chain/chain-dci 2025-10-22 15:15:07 +08:00
3e937b66b2 Update .drone.yml 2025-10-17 14:04:39 +08:00
c44ea83b6c Update .drone.yml 2025-10-17 14:04:09 +08:00
36f396de6e Update .drone.yml 2025-10-17 13:53:43 +08:00
cjy
1f72ee4d85 bugfix: 修改更新企业dci用户的请求参数和构建请求方式 2025-09-12 16:52:27 +08:00
cjy
7230d4be99 feat:新增为企业修改dci信息接口 2025-09-12 10:35:33 +08:00
jhc
5c888cb1c4 Merge branch 'dev' of http://172.16.100.91:3000/chain/chain-dci into dev
All checks were successful
continuous-integration/drone/push Build is passing
2025-02-18 15:00:00 +08:00
jhc
ffae4c5dfb 更新 账户信息 2025-02-18 14:59:26 +08:00
jhc
9837b2057c 修改账号信息 2025-02-18 14:56:37 +08:00
d13ca6fe3e Update .drone.yml
All checks were successful
continuous-integration/drone/push Build is passing
2024-12-12 13:18:09 +08:00
15 changed files with 760 additions and 336 deletions

View File

@ -4,27 +4,49 @@ name: chain-dci【K8s-测试服】
volumes:
- name: pkgdeps
host:
path: /mnt/storage/data/drone/define_cache/chain-dci
path: /mnt/data/drone/define_cache/chain-dci
- name: docker
host:
path: /var/run/docker.sock
- name: docker-daemon
host:
path: /etc/docker/daemon.json
clone:
disable: true
steps:
- name: clone-and-configure
image: testhub.szjixun.cn:9043/public/plugins/git
environment:
GITEA_USERNAME:
from_secret: GITEA_USERNAME
GITEA_TOKEN:
from_secret: GITEA_TOKEN
commands:
# 手动克隆主仓库
- git init
- git remote add origin https://${GITEA_USERNAME}:${GITEA_TOKEN}@gitea-inner.fontree.cn/chain/chain-dci
- git fetch --no-tags origin +refs/heads/dev
- git reset --hard origin/dev
# 配置子模块 URL 重定向
- git config --global url."https://${GITEA_USERNAME}:${GITEA_TOKEN}@gitea-inner.fontree.cn/fonchain/oa-proto.git".insteadOf "https://gitea-net.fontree.cn/fonchain/oa-proto.git"
# 配置 HTTPS 凭据
# - git config --global credential.helper 'store --file=/tmp/git-credentials'
# - echo "https://${GITEA_USERNAME}:${GITEA_TOKEN}@gitea-inner.fontree.cn" > /tmp/git-credentials
# 更新子模块
- git submodule update --init --recursive
when:
branch:
- dev
- name: fetch submodules
image: testhub.szjixun.cn:9043/public/plugins/git
pull: if-not-exists
commands:
- git config --file=.gitmodules submodule.oa-proto.url https://gitea-inner.fontree.cn/fonchain/oa-proto.git
- git submodule sync
- git submodule update --init --force --recursive --remote
- name: build
image: testhub.szjixun.cn:9043/public/golang:1.20-alpine
pull: if-not-exists
network:
mode: bridge
options:
com.docker.network.bridge.host_binding_ipv4: "172.16.100.22"
com.docker.network.bridge.name: "dnmp_default"
environment:
GOPROXY: "https://goproxy.cn,direct"
GOPATH: /go
@ -34,6 +56,7 @@ steps:
path: /go/pkg
commands:
- cp DockerfileTest Dockerfile
- go mod tidy
- CGO_ENABLED=0 go build -ldflags "-s -w" -o chain-dci-server ./cmd
- name: publish
image: testhub.szjixun.cn:9043/public/plugins/docker
@ -66,7 +89,6 @@ steps:
dashboard: kuboard
build_repo:
from_secret: build_repo
- name: 钉钉通知
image: testhub.szjixun.cn:9043/public/drone-ding
settings:
@ -81,15 +103,11 @@ steps:
db_log: true
db_type: mysql
db_name: notelog
db_host: "172.16.100.99"
db_port: 9007
db_username: artuser # 后期需要修改
db_password: "C250PflXIWv2SQm8" # 后期需要修改
when:
status: [ failure, success ]
branch: dev
network:
subnet: 172.18.0.0/16
subnet: dnmp_default
trigger:
branch:
- dev

View File

@ -7,14 +7,22 @@ chainDci:
user: artuser
password: C250PflXIWv2SQm8
db_name: "chain_dci"
antCloud:
antCloudYF:
access_key: "ACsK4CQqzj5rGSKf"
access_key_secret: "SJmH5eATWY26tJrVg8QyHaBGbLNCbj7y"
end_point: "https://openapi-sit.antchain.antgroup.com/gateway.do"
Bccr:
antCloudYXT:
access_key: "ACSvp2GUdWUucS7r"
access_key_secret: "dQ8hFkLs2qnMNYRuvrtzDp6mtQB7uVwg"
end_point: "https://openapi-sit.antchain.antgroup.com/gateway.do"
BccrYF:
access_key_id: "ACsK4CQqzj5rGSKf"
access_key_secret: "SJmH5eATWY26tJrVg8QyHaBGbLNCbj7y"
end_point: "openapi-sit.antchain.antgroup.com"
BccrYXT:
access_key_id: "ACSvp2GUdWUucS7r"
access_key_secret: "dQ8hFkLs2qnMNYRuvrtzDp6mtQB7uVwg"
end_point: "openapi-sit.antchain.antgroup.com"
#aliYunRtc:
# appid: "aeztom27"
# app_key: "76c62466cbd77d7a3606660a15861d1e"

View File

@ -7,11 +7,16 @@ chainDci:
user: artuser
password: C250PflXIWv2SQm8
db_name: "chain_dci"
Bccr:
BccrYF:
access_key_id: "ACsK4CQqzj5rGSKf"
access_key_secret: "SJmH5eATWY26tJrVg8QyHaBGbLNCbj7y"
# end_point: "openapi.antchain.antgroup.com" # 正式的 endpoint
end_point: "openapi-sit.antchain.antgroup.com" # 测试式的 endpoint
BccrYXT:
access_key_id: "ACSvp2GUdWUucS7r"
access_key_secret: "dQ8hFkLs2qnMNYRuvrtzDp6mtQB7uVwg"
# end_point: "openapi.antchain.antgroup.com" # 正式的 endpoint
end_point: "openapi-sit.antchain.antgroup.com" # 测试式的 endpoint
#redis:
# db: ${oa-meeting.redis.db}
# addr: ${redis.addr}

View File

@ -1,10 +1,14 @@
system:
mode: prod #正式 prod #测试 test #开发 dev
# config_source: configmap
Bccr:
BccrYF:
access_key_id: "ACsK4CQqzj5rGSKf"
access_key_secret: "SJmH5eATWY26tJrVg8QyHaBGbLNCbj7y"
end_point: "openapi.antchain.antgroup.com"
BccrYXT:
access_key_id: "ACSvp2GUdWUucS7r"
access_key_secret: "dQ8hFkLs2qnMNYRuvrtzDp6mtQB7uVwg"
end_point: "openapi.antchain.antgroup.com"
#redis:
# db: ${oa-meeting.redis.db}
# addr: ${redis.addr}

View File

@ -29,7 +29,12 @@ type AppConfig struct {
AccessKeySecret string `mapstructure:"access_key_secret"`
EndPoint string `mapstructure:"end_point"`
}
Bccr struct {
BccrYF struct {
AccessKeyID string `mapstructure:"access_key_id"`
AccessKeySecret string `mapstructure:"access_key_secret"`
EndPoint string `mapstructure:"end_point"`
}
BccrYXT struct {
AccessKeyID string `mapstructure:"access_key_id"`
AccessKeySecret string `mapstructure:"access_key_secret"`
EndPoint string `mapstructure:"end_point"`

2
go.mod
View File

@ -4,7 +4,7 @@ go 1.20
require (
dubbo.apache.org/dubbo-go/v3 v3.0.5
github.com/antchain-openapi-sdk-go/bccr v1.19.22
github.com/antchain-openapi-sdk-go/bccr v1.19.38
github.com/bwmarrin/snowflake v0.3.0
github.com/dubbogo/grpc-go v1.42.10
github.com/dubbogo/triple v1.2.2-rc2

2
go.sum
View File

@ -102,6 +102,8 @@ github.com/antchain-openapi-sdk-go/antchain-util v0.0.7/go.mod h1:pi99Uu97pcsfyU
github.com/antchain-openapi-sdk-go/bccr v1.19.2 h1:38TM2NSpvPPXcJM0j3vvNb14i2fpGqfyslAdmsPHM8k=
github.com/antchain-openapi-sdk-go/bccr v1.19.2/go.mod h1:ALgEJuJDenNJdGrcBMJ1zoyla8KvimZVmtofHAf2ouY=
github.com/antchain-openapi-sdk-go/bccr v1.19.22/go.mod h1:ALgEJuJDenNJdGrcBMJ1zoyla8KvimZVmtofHAf2ouY=
github.com/antchain-openapi-sdk-go/bccr v1.19.38 h1:dDEBvk1Nhl1oFc8mYBzQXCkP2O3qKtQdmZ4ZUcmjnZc=
github.com/antchain-openapi-sdk-go/bccr v1.19.38/go.mod h1:ALgEJuJDenNJdGrcBMJ1zoyla8KvimZVmtofHAf2ouY=
github.com/antchfx/htmlquery v1.2.3 h1:sP3NFDneHx2stfNXCKbhHFo8XgNjCACnU/4AO5gWz6M=
github.com/antchfx/htmlquery v1.2.3/go.mod h1:B0ABL+F5irhhMWg54ymEZinzMSi0Kt3I2if0BLYa3V0=
github.com/antchfx/xmlquery v1.2.4 h1:T/SH1bYdzdjTMoz2RgsfVKbM5uWh3gjDYYepFqQmFv4=

View File

@ -39,6 +39,12 @@ func (d *DciProvider) UpdateDciUser(_ context.Context, req *dci.UpdateDciUserReq
return
}
func (d *DciProvider) UpdateDciEnterpriseUser(_ context.Context, req *dci.UpdateDciEnterpriseUserRequest) (res *dci.UpdateDciEnterpriseUserResponse, err error) {
res = new(dci.UpdateDciEnterpriseUserResponse)
res, err = d.dciUser.UpdateDciEnterpriseUser(req)
return
}
func (d *DciProvider) QueryDciUser(_ context.Context, req *dci.QueryDciUserRequest) (res *dci.QueryDciUserResponse, err error) {
res = new(dci.QueryDciUserResponse)
res, err = d.dciUser.QueryDciUser(req)

View File

@ -5,14 +5,16 @@ import (
"chain-dci/pkg/app"
errCommon "chain-dci/pkg/err"
"chain-dci/pkg/msg"
"time"
bccrClient "github.com/antchain-openapi-sdk-go/bccr/client"
"github.com/jinzhu/copier"
"time"
)
type IDciUser interface {
AddDciUser(req *dci.AddDciUserRequest) (res *dci.AddDciUserResponse, err error)
UpdateDciUser(req *dci.UpdateDciUserRequest) (res *dci.UpdateDciUserResponse, err error)
UpdateDciEnterpriseUser(req *dci.UpdateDciEnterpriseUserRequest) (res *dci.UpdateDciEnterpriseUserResponse, err error)
QueryDciUser(req *dci.QueryDciUserRequest) (res *dci.QueryDciUserResponse, err error)
}
@ -73,6 +75,44 @@ func (u *DciUser) UpdateDciUser(req *dci.UpdateDciUserRequest) (res *dci.UpdateD
return
}
// UpdateDciEnterpriseUser 企业著作权人 更新 DCI信息
func (u *DciUser) UpdateDciEnterpriseUser(req *dci.UpdateDciEnterpriseUserRequest) (res *dci.UpdateDciEnterpriseUserResponse, err error) {
errCommon.NoReturnInfo(req, "企业著作权人 更新 DCI信息 参数信息: ")
res = new(dci.UpdateDciEnterpriseUserResponse)
updateEnterpriseUserRequest := new(bccrClient.UpdateDciUserRequest)
// 构建企业用户更新请求
updateEnterpriseUserRequest.SetDciUserId(req.DciUserId)
updateEnterpriseUserRequest.SetCertFrontFileId(req.CertificateFrontFileId)
updateEnterpriseUserRequest.SetPhone(req.Phone)
updateEnterpriseUserRequest.SetLegalPersonInfo(&bccrClient.EnterpriseLegalPersonInfo{
LegalPersonCertName: &req.LegalPersonCertName,
LegalPersonCertType: &req.LegalPersonCertType,
LegalPersonCertNo: &req.LegalPersonCertNo,
})
// 创建clientToken包含企业特有信息
clientToken, err := createToken(time.Now().UnixMilli(), req.DciUserId, req.CertificateFrontFileId, req.Phone, app.ModuleClients.SfNode.Generate().Base64())
if err != nil {
return nil, errCommon.ReturnError(err, msg.ErrCreateClientToken, "创建企业用户clientToken 失败: ")
}
updateEnterpriseUserRequest.SetClientToken(clientToken)
// 调用底层API
updateEnterpriseUserResponse, err := app.ModuleClients.BccrClient.UpdateDciUser(updateEnterpriseUserRequest)
if err != nil {
return nil, errCommon.ReturnError(err, msg.ErrUpdateDciUser, "企业著作权人 更新 DCI信息 失败: ")
}
errCommon.NoReturnInfo(updateEnterpriseUserResponse, "企业著作权人 更新 DCI信息 成功: ")
_ = copier.CopyWithOption(&res, updateEnterpriseUserResponse, copier.Option{DeepCopy: false})
return
}
// QueryDciUser 著作权人 查询 DCI信息
func (u *DciUser) QueryDciUser(req *dci.QueryDciUserRequest) (res *dci.QueryDciUserResponse, err error) {
errCommon.NoReturnInfo(req, "著作权人 查询 DCI信息 参数信息: ")

View File

@ -13,6 +13,7 @@ service Dci {
// dci user
rpc AddDciUser(AddDciUserRequest) returns (AddDciUserResponse);
rpc UpdateDciUser(UpdateDciUserRequest) returns (UpdateDciUserResponse);
rpc UpdateDciEnterpriseUser(UpdateDciEnterpriseUserRequest) returns (UpdateDciEnterpriseUserResponse); //
rpc QueryDciUser(QueryDciUserRequest) returns (QueryDciUserResponse);
// dci work
@ -356,3 +357,19 @@ message QueryDciFeedbackResponse {
string DciContentId = 6 [json_name = "DciContentId"];
string msg = 7 [json_name = "msg"];
}
// Dci enterprise user -
message UpdateDciEnterpriseUserRequest {
string dciUserId = 1 [json_name = "dciUserId",(validator.field) = {string_not_empty: true,human_error:"dci用户ID不能为空"}];
string certificateFrontFileId = 2 [json_name = "certificateFrontFileId",(validator.field) = {string_not_empty: true,human_error:"企业营业执照文件路径不能为空"}];
string legalPersonCertName = 3 [json_name = "legalPersonCertName"];
string legalPersonCertType = 4 [json_name = "legalPersonCertType"];
string legalPersonCertNo = 5 [json_name = "legalPersonCertNo"];
string phone = 6 [json_name = "phone"];
string clientToken = 7 [json_name = "clientToken"];
}
message UpdateDciEnterpriseUserResponse {
string resultCode = 1 [json_name = "resultCode"];
string resultMsg = 2 [json_name = "resultMsg"];
string reqMsgId = 3 [json_name = "reqMsgId"];
}

File diff suppressed because it is too large Load Diff

View File

@ -335,3 +335,15 @@ func (this *QueryDciFeedbackRequest) Validate() error {
func (this *QueryDciFeedbackResponse) Validate() error {
return nil
}
func (this *UpdateDciEnterpriseUserRequest) Validate() error {
if this.DciUserId == "" {
return github_com_mwitkow_go_proto_validators.FieldError("DciUserId", fmt.Errorf(`dci用户ID不能为空`))
}
if this.CertificateFrontFileId == "" {
return github_com_mwitkow_go_proto_validators.FieldError("CertificateFrontFileId", fmt.Errorf(`企业营业执照文件路径不能为空`))
}
return nil
}
func (this *UpdateDciEnterpriseUserResponse) Validate() error {
return nil
}

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go-triple. DO NOT EDIT.
// versions:
// - protoc-gen-go-triple v1.0.5
// - protoc v5.29.0--rc3
// - protoc-gen-go-triple v1.0.8
// - protoc v3.21.1
// source: pb/dci.proto
package dci
@ -33,6 +33,7 @@ type DciClient interface {
// dci user
AddDciUser(ctx context.Context, in *AddDciUserRequest, opts ...grpc_go.CallOption) (*AddDciUserResponse, common.ErrorWithAttachment)
UpdateDciUser(ctx context.Context, in *UpdateDciUserRequest, opts ...grpc_go.CallOption) (*UpdateDciUserResponse, common.ErrorWithAttachment)
UpdateDciEnterpriseUser(ctx context.Context, in *UpdateDciEnterpriseUserRequest, opts ...grpc_go.CallOption) (*UpdateDciEnterpriseUserResponse, common.ErrorWithAttachment)
QueryDciUser(ctx context.Context, in *QueryDciUserRequest, opts ...grpc_go.CallOption) (*QueryDciUserResponse, common.ErrorWithAttachment)
// dci work
CreateDciPreregistration(ctx context.Context, in *CreateDciPreregistrationRequest, opts ...grpc_go.CallOption) (*CreateDciPreregistrationResponse, common.ErrorWithAttachment)
@ -57,6 +58,7 @@ type DciClientImpl struct {
GetUploadUrl func(ctx context.Context, in *GetUploadUrlRequest) (*GetUploadUrlResponse, error)
AddDciUser func(ctx context.Context, in *AddDciUserRequest) (*AddDciUserResponse, error)
UpdateDciUser func(ctx context.Context, in *UpdateDciUserRequest) (*UpdateDciUserResponse, error)
UpdateDciEnterpriseUser func(ctx context.Context, in *UpdateDciEnterpriseUserRequest) (*UpdateDciEnterpriseUserResponse, error)
QueryDciUser func(ctx context.Context, in *QueryDciUserRequest) (*QueryDciUserResponse, error)
CreateDciPreregistration func(ctx context.Context, in *CreateDciPreregistrationRequest) (*CreateDciPreregistrationResponse, error)
QueryDciPreregistration func(ctx context.Context, in *QueryDciPreregistrationRequest) (*QueryDciPreregistrationResponse, error)
@ -101,6 +103,12 @@ func (c *dciClient) UpdateDciUser(ctx context.Context, in *UpdateDciUserRequest,
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateDciUser", in, out)
}
func (c *dciClient) UpdateDciEnterpriseUser(ctx context.Context, in *UpdateDciEnterpriseUserRequest, opts ...grpc_go.CallOption) (*UpdateDciEnterpriseUserResponse, common.ErrorWithAttachment) {
out := new(UpdateDciEnterpriseUserResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateDciEnterpriseUser", in, out)
}
func (c *dciClient) QueryDciUser(ctx context.Context, in *QueryDciUserRequest, opts ...grpc_go.CallOption) (*QueryDciUserResponse, common.ErrorWithAttachment) {
out := new(QueryDciUserResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
@ -182,6 +190,7 @@ type DciServer interface {
// dci user
AddDciUser(context.Context, *AddDciUserRequest) (*AddDciUserResponse, error)
UpdateDciUser(context.Context, *UpdateDciUserRequest) (*UpdateDciUserResponse, error)
UpdateDciEnterpriseUser(context.Context, *UpdateDciEnterpriseUserRequest) (*UpdateDciEnterpriseUserResponse, error)
QueryDciUser(context.Context, *QueryDciUserRequest) (*QueryDciUserResponse, error)
// dci work
CreateDciPreregistration(context.Context, *CreateDciPreregistrationRequest) (*CreateDciPreregistrationResponse, error)
@ -213,6 +222,9 @@ func (UnimplementedDciServer) AddDciUser(context.Context, *AddDciUserRequest) (*
func (UnimplementedDciServer) UpdateDciUser(context.Context, *UpdateDciUserRequest) (*UpdateDciUserResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateDciUser not implemented")
}
func (UnimplementedDciServer) UpdateDciEnterpriseUser(context.Context, *UpdateDciEnterpriseUserRequest) (*UpdateDciEnterpriseUserResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateDciEnterpriseUser not implemented")
}
func (UnimplementedDciServer) QueryDciUser(context.Context, *QueryDciUserRequest) (*QueryDciUserResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method QueryDciUser not implemented")
}
@ -364,6 +376,35 @@ func _Dci_UpdateDciUser_Handler(srv interface{}, ctx context.Context, dec func(i
return interceptor(ctx, in, info, handler)
}
func _Dci_UpdateDciEnterpriseUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateDciEnterpriseUserRequest)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("UpdateDciEnterpriseUser", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Dci_QueryDciUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryDciUserRequest)
if err := dec(in); err != nil {
@ -731,6 +772,10 @@ var Dci_ServiceDesc = grpc_go.ServiceDesc{
MethodName: "UpdateDciUser",
Handler: _Dci_UpdateDciUser_Handler,
},
{
MethodName: "UpdateDciEnterpriseUser",
Handler: _Dci_UpdateDciEnterpriseUser_Handler,
},
{
MethodName: "QueryDciUser",
Handler: _Dci_QueryDciUser_Handler,

View File

@ -12,9 +12,9 @@ func NewBccrClient() *bccrClient.Client {
// Endpoint 请参考 https://api.aliyun.com/product/rtc
bccrConfig := new(bccrClient.Config)
bccrConfig.SetEndpoint(dciConfig.Data.Bccr.EndPoint)
bccrConfig.SetAccessKeyId(dciConfig.Data.Bccr.AccessKeyID)
bccrConfig.SetAccessKeySecret(dciConfig.Data.Bccr.AccessKeySecret)
bccrConfig.SetEndpoint(dciConfig.Data.BccrYXT.EndPoint)
bccrConfig.SetAccessKeyId(dciConfig.Data.BccrYXT.AccessKeyID)
bccrConfig.SetAccessKeySecret(dciConfig.Data.BccrYXT.AccessKeySecret)
client, err := bccrClient.NewClient(bccrConfig)
if err != nil {

View File

@ -22,3 +22,39 @@
{"level":"\u001b[34mINFO\u001b[0m","time":"2023-11-17T14:44:57.256+0800","caller":"protocol/invoker.go:92","message":"Destroy invoker: tri://:20201/grpc.reflection.v1alpha.ServerReflection?accesslog=&app.version=&application=dubbo.io&auth=&bean.name=DubbogoServerReflectionServer&cluster=failover&config.tracing=&environment=&execute.limit=&execute.limit.rejected.handler=&export=true&interface=grpc.reflection.v1alpha.ServerReflection&loadbalance=random&message_size=4&metadata-type=local&module=sample&name=dubbo.io&organization=dubbo-go&owner=dubbo-go&param.sign=&pid=8424&registry.role=3&release=dubbo-golang-3.0.4&retries=&serialization=&service.filter=tracing&side=provider&timestamp=1700200644&tps.limit.interval=&tps.limit.rate=&tps.limit.rejected.handler=&tps.limit.strategy=&tps.limiter=&warmup="}
{"level":"\u001b[34mINFO\u001b[0m","time":"2023-11-17T14:44:57.256+0800","caller":"config/graceful_shutdown.go:155","message":"Graceful shutdown --- Second Destroy consumer's protocols. "}
{"level":"\u001b[34mINFO\u001b[0m","time":"2023-11-17T14:44:57.257+0800","caller":"config/graceful_shutdown.go:113","message":"Graceful shutdown --- Execute the custom callbacks."}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:53:24.143+0800","caller":"config/root_config.go:131","message":"[Config Center] Config center doesn't start"}
{"level":"\u001b[33mWARN\u001b[0m","time":"2025-02-18T14:53:24.145+0800","caller":"common/rpc_service.go:373","message":"method Resume of mtype func(*health.DubbogoHealthServer) has wrong number of in out parameters 0; needs exactly 1/2"}
{"level":"\u001b[33mWARN\u001b[0m","time":"2025-02-18T14:53:24.145+0800","caller":"common/rpc_service.go:373","message":"method SetServingStatus of mtype func(*health.DubbogoHealthServer, string, triple_health_v1.HealthCheckResponse_ServingStatus) has wrong number of in out parameters 0; needs exactly 1/2"}
{"level":"\u001b[33mWARN\u001b[0m","time":"2025-02-18T14:53:24.145+0800","caller":"common/rpc_service.go:373","message":"method Shutdown of mtype func(*health.DubbogoHealthServer) has wrong number of in out parameters 0; needs exactly 1/2"}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:53:24.145+0800","caller":"dubbo3/dubbo3_protocol.go:82","message":"[Triple Protocol] Export service: tri://:20201/grpc.health.v1.Health?accesslog=&app.version=&application=dubbo.io&auth=&bean.name=DubbogoHealthServer&cluster=failover&config.tracing=&environment=&execute.limit=&execute.limit.rejected.handler=&export=true&interface=grpc.health.v1.Health&loadbalance=random&message_size=4&metadata-type=local&module=sample&name=dubbo.io&organization=dubbo-go&owner=dubbo-go&param.sign=&pid=32324&registry.role=3&release=dubbo-golang-3.0.4&retries=&serialization=&service.filter=tracing&side=provider&timestamp=1739861604&tps.limit.interval=&tps.limit.rate=&tps.limit.rejected.handler=&tps.limit.strategy=&tps.limiter=&warmup="}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:53:24.147+0800","caller":"dubbo3/dubbo3_protocol.go:82","message":"[Triple Protocol] Export service: tri://:20201/grpc.reflection.v1alpha.ServerReflection?accesslog=&app.version=&application=dubbo.io&auth=&bean.name=DubbogoServerReflectionServer&cluster=failover&config.tracing=&environment=&execute.limit=&execute.limit.rejected.handler=&export=true&interface=grpc.reflection.v1alpha.ServerReflection&loadbalance=random&message_size=4&metadata-type=local&module=sample&name=dubbo.io&organization=dubbo-go&owner=dubbo-go&param.sign=&pid=32324&registry.role=3&release=dubbo-golang-3.0.4&retries=&serialization=&service.filter=tracing&side=provider&timestamp=1739861604&tps.limit.interval=&tps.limit.rate=&tps.limit.rejected.handler=&tps.limit.strategy=&tps.limiter=&warmup="}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:53:24.147+0800","caller":"dubbo3/dubbo3_protocol.go:82","message":"[Triple Protocol] Export service: tri://:20201/com.fontree.microservices.chain.dci?accesslog=&app.version=&application=dubbo.io&auth=&bean.name=DciProvider&cluster=failover&config.tracing=&environment=&execute.limit=&execute.limit.rejected.handler=&export=true&interface=com.fontree.microservices.chain.dci&loadbalance=random&message_size=4&metadata-type=local&module=sample&name=dubbo.io&organization=dubbo-go&owner=dubbo-go&param.sign=&pid=32324&registry=zookeeper&registry.role=3&release=dubbo-golang-3.0.4&retries=0&serialization=&service.filter=tps%2Ctracing&side=provider&timestamp=1739861604&tps.limit.interval=1000&tps.limit.rate=30&tps.limit.rejected.handler=DefaultValueHandler&tps.limit.strategy=fixedWindow&tps.limiter=method-service&warmup=100"}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:53:24.148+0800","caller":"zookeeper/registry.go:67","message":"[Zookeeper Registry] New zookeeper registry with url map[host:172.16.100.93 port:2181 protocol:zookeeper registry:zookeeper registry.group: registry.label:true registry.namespace: registry.preferred:false registry.role:3 registry.timeout:10s registry.ttl:10s registry.weight:0 registry.zone: remote-client-name:dubbo.registries-zookeeper-172.16.100.93:2181 simplified:false]"}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:53:24.148+0800","caller":"zookeeper/client.go:53","message":"[Zookeeper Client] New zookeeper client with name = 172.16.100.93:2181, zkAddress = 172.16.100.93:2181, timeout = 5s"}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:53:24.169+0800","caller":"zookeeper/registry.go:222","message":"[Zookeeper Registry] Registry instance with root = /dubbo/com.fontree.microservices.chain.dci/providers, node = tri%3A%2F%2F192.168.88.42%3A20201%2Fcom.fontree.microservices.chain.dci%3Fanyhost%3Dtrue%26application%3Ddubbo.io%26bean.name%3DDciProvider%26cluster%3Dfailover%26export%3Dtrue%26interface%3Dcom.fontree.microservices.chain.dci%26loadbalance%3Drandom%26message_size%3D4%26metadata-type%3Dlocal%26methods%3DAddDciUser%2CCloseDciRegistration%2CCreateDciPreregistration%2CCreateDciRegistration%2CGetDciPayAmount%2CGetDciPayUrl%2CGetDciRegistrationcert%2CGetUploadUrl%2CQueryDciFeedback%2CQueryDciPay%2CQueryDciPreregistration%2CQueryDciRegistration%2CQueryDciUser%2CRetryDciRegistration%2CSubmitDciFeedback%2CUpdateDciUser%26module%3Dsample%26name%3Ddubbo.io%26organization%3Ddubbo-go%26owner%3Ddubbo-go%26pid%3D32324%26registry%3Dzookeeper%26registry.role%3D3%26release%3Ddubbo-golang-3.0.4%26retries%3D0%26service.filter%3Dtps%2Ctracing%26side%3Dprovider%26timestamp%3D1739861604%26tps.limit.interval%3D1000%26tps.limit.rate%3D30%26tps.limit.rejected.handler%3DDefaultValueHandler%26tps.limit.strategy%3DfixedWindow%26tps.limiter%3Dmethod-service%26warmup%3D100"}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:53:24.187+0800","caller":"zookeeper/listener.go:373","message":"[Zookeeper Listener] listen dubbo path{/dubbo/com.fontree.microservices.chain.dci/providers}"}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:53:24.187+0800","caller":"dubbo/dubbo_protocol.go:84","message":"[DUBBO Protocol] Export service: dubbo://:58926/org.apache.dubbo.metadata.MetadataService?accesslog=&app.version=&application=dubbo.io&auth=&bean.name=MetadataService&cluster=&config.tracing=&environment=&execute.limit=&execute.limit.rejected.handler=&export=true&group=dubbo.io&interface=org.apache.dubbo.metadata.MetadataService&loadbalance=&message_size=0&metadata-type=local&module=sample&name=dubbo.io&organization=dubbo-go&owner=dubbo-go&param.sign=&pid=32324&registry.role=3&release=dubbo-golang-3.0.4&retries=&serialization=&service.filter=echo%2Cmetrics%2Ctoken%2Caccesslog%2Ctps%2Cgeneric_service%2Cexecute%2Cpshutdown&side=provider&timestamp=1739861604&tps.limit.interval=&tps.limit.rate=&tps.limit.rejected.handler=&tps.limit.strategy=&tps.limiter=&version=1.0.0&warmup="}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:53:24.188+0800","caller":"configurable/exporter.go:80","message":"[Metadata Service] The MetadataService exports urls : [dubbo://:58926/org.apache.dubbo.metadata.MetadataService?accesslog=&app.version=&application=dubbo.io&auth=&bean.name=MetadataService&cluster=&config.tracing=&environment=&execute.limit=&execute.limit.rejected.handler=&export=true&group=dubbo.io&interface=org.apache.dubbo.metadata.MetadataService&loadbalance=&message_size=0&metadata-type=local&module=sample&name=dubbo.io&organization=dubbo-go&owner=dubbo-go&param.sign=&pid=32324&registry.role=3&release=dubbo-golang-3.0.4&retries=&serialization=&service.filter=echo%2Cmetrics%2Ctoken%2Caccesslog%2Ctps%2Cgeneric_service%2Cexecute%2Cpshutdown&side=provider&timestamp=1739861604&tps.limit.interval=&tps.limit.rate=&tps.limit.rejected.handler=&tps.limit.strategy=&tps.limiter=&version=1.0.0&warmup=] "}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:17.611+0800","caller":"config/graceful_shutdown.go:81","message":"get signal interrupt, applicationConfig will shutdown."}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:17.611+0800","caller":"config/graceful_shutdown.go:121","message":"Graceful shutdown --- Destroy all registriesConfig. "}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:17.618+0800","caller":"config/graceful_shutdown.go:162","message":"Graceful shutdown --- Keep waiting and accept new requests for a short time. "}
{"level":"\u001b[33mWARN\u001b[0m","time":"2025-02-18T14:56:17.618+0800","caller":"zookeeper/listener.go:146","message":"get a zookeeper keyEventCh{type:EventNodeDeleted, server:, path:/dubbo/com.fontree.microservices.chain.dci/providers/tri%3A%2F%2F192.168.88.42%3A20201%2Fcom.fontree.microservices.chain.dci%3Fanyhost%3Dtrue%26application%3Ddubbo.io%26bean.name%3DDciProvider%26cluster%3Dfailover%26export%3Dtrue%26interface%3Dcom.fontree.microservices.chain.dci%26loadbalance%3Drandom%26message_size%3D4%26metadata-type%3Dlocal%26methods%3DAddDciUser%2CCloseDciRegistration%2CCreateDciPreregistration%2CCreateDciRegistration%2CGetDciPayAmount%2CGetDciPayUrl%2CGetDciRegistrationcert%2CGetUploadUrl%2CQueryDciFeedback%2CQueryDciPay%2CQueryDciPreregistration%2CQueryDciRegistration%2CQueryDciUser%2CRetryDciRegistration%2CSubmitDciFeedback%2CUpdateDciUser%26module%3Dsample%26name%3Ddubbo.io%26organization%3Ddubbo-go%26owner%3Ddubbo-go%26pid%3D32324%26registry%3Dzookeeper%26registry.role%3D3%26release%3Ddubbo-golang-3.0.4%26retries%3D0%26service.filter%3Dtps%2Ctracing%26side%3Dprovider%26timestamp%3D1739861604%26tps.limit.interval%3D1000%26tps.limit.rate%3D30%26tps.limit.rejected.handler%3DDefaultValueHandler%26tps.limit.strategy%3DfixedWindow%26tps.limiter%3Dmethod-service%26warmup%3D100, state:3-zookeeper connected, err:%!s(<nil>)}"}
{"level":"\u001b[33mWARN\u001b[0m","time":"2025-02-18T14:56:17.618+0800","caller":"zookeeper/listener.go:146","message":"get a zookeeper keyEventCh{type:EventNodeDeleted, server:, path:/dubbo/com.fontree.microservices.chain.dci/providers/tri%3A%2F%2F192.168.88.42%3A20201%2Fcom.fontree.microservices.chain.dci%3Fanyhost%3Dtrue%26application%3Ddubbo.io%26bean.name%3DDciProvider%26cluster%3Dfailover%26export%3Dtrue%26interface%3Dcom.fontree.microservices.chain.dci%26loadbalance%3Drandom%26message_size%3D4%26metadata-type%3Dlocal%26methods%3DAddDciUser%2CCloseDciRegistration%2CCreateDciPreregistration%2CCreateDciRegistration%2CGetDciPayAmount%2CGetDciPayUrl%2CGetDciRegistrationcert%2CGetUploadUrl%2CQueryDciFeedback%2CQueryDciPay%2CQueryDciPreregistration%2CQueryDciRegistration%2CQueryDciUser%2CRetryDciRegistration%2CSubmitDciFeedback%2CUpdateDciUser%26module%3Dsample%26name%3Ddubbo.io%26organization%3Ddubbo-go%26owner%3Ddubbo-go%26pid%3D32324%26registry%3Dzookeeper%26registry.role%3D3%26release%3Ddubbo-golang-3.0.4%26retries%3D0%26service.filter%3Dtps%2Ctracing%26side%3Dprovider%26timestamp%3D1739861604%26tps.limit.interval%3D1000%26tps.limit.rate%3D30%26tps.limit.rejected.handler%3DDefaultValueHandler%26tps.limit.strategy%3DfixedWindow%26tps.limiter%3Dmethod-service%26warmup%3D100, state:3-zookeeper connected, err:%!s(<nil>)}"}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:17.618+0800","caller":"zookeeper/listener.go:172","message":"[ZkEventListener][listenServiceNodeEvent]Get a EventNodeDeleted event for path {/dubbo/com.fontree.microservices.chain.dci/providers/tri%3A%2F%2F192.168.88.42%3A20201%2Fcom.fontree.microservices.chain.dci%3Fanyhost%3Dtrue%26application%3Ddubbo.io%26bean.name%3DDciProvider%26cluster%3Dfailover%26export%3Dtrue%26interface%3Dcom.fontree.microservices.chain.dci%26loadbalance%3Drandom%26message_size%3D4%26metadata-type%3Dlocal%26methods%3DAddDciUser%2CCloseDciRegistration%2CCreateDciPreregistration%2CCreateDciRegistration%2CGetDciPayAmount%2CGetDciPayUrl%2CGetDciRegistrationcert%2CGetUploadUrl%2CQueryDciFeedback%2CQueryDciPay%2CQueryDciPreregistration%2CQueryDciRegistration%2CQueryDciUser%2CRetryDciRegistration%2CSubmitDciFeedback%2CUpdateDciUser%26module%3Dsample%26name%3Ddubbo.io%26organization%3Ddubbo-go%26owner%3Ddubbo-go%26pid%3D32324%26registry%3Dzookeeper%26registry.role%3D3%26release%3Ddubbo-golang-3.0.4%26retries%3D0%26service.filter%3Dtps%2Ctracing%26side%3Dprovider%26timestamp%3D1739861604%26tps.limit.interval%3D1000%26tps.limit.rate%3D30%26tps.limit.rejected.handler%3DDefaultValueHandler%26tps.limit.strategy%3DfixedWindow%26tps.limiter%3Dmethod-service%26warmup%3D100}"}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:17.618+0800","caller":"zookeeper/listener.go:172","message":"[ZkEventListener][listenServiceNodeEvent]Get a EventNodeDeleted event for path {/dubbo/com.fontree.microservices.chain.dci/providers/tri%3A%2F%2F192.168.88.42%3A20201%2Fcom.fontree.microservices.chain.dci%3Fanyhost%3Dtrue%26application%3Ddubbo.io%26bean.name%3DDciProvider%26cluster%3Dfailover%26export%3Dtrue%26interface%3Dcom.fontree.microservices.chain.dci%26loadbalance%3Drandom%26message_size%3D4%26metadata-type%3Dlocal%26methods%3DAddDciUser%2CCloseDciRegistration%2CCreateDciPreregistration%2CCreateDciRegistration%2CGetDciPayAmount%2CGetDciPayUrl%2CGetDciRegistrationcert%2CGetUploadUrl%2CQueryDciFeedback%2CQueryDciPay%2CQueryDciPreregistration%2CQueryDciRegistration%2CQueryDciUser%2CRetryDciRegistration%2CSubmitDciFeedback%2CUpdateDciUser%26module%3Dsample%26name%3Ddubbo.io%26organization%3Ddubbo-go%26owner%3Ddubbo-go%26pid%3D32324%26registry%3Dzookeeper%26registry.role%3D3%26release%3Ddubbo-golang-3.0.4%26retries%3D0%26service.filter%3Dtps%2Ctracing%26side%3Dprovider%26timestamp%3D1739861604%26tps.limit.interval%3D1000%26tps.limit.rate%3D30%26tps.limit.rejected.handler%3DDefaultValueHandler%26tps.limit.strategy%3DfixedWindow%26tps.limiter%3Dmethod-service%26warmup%3D100}"}
{"level":"\u001b[33mWARN\u001b[0m","time":"2025-02-18T14:56:17.618+0800","caller":"zookeeper/listener.go:215","message":"delete zkNode{/dubbo/com.fontree.microservices.chain.dci/providers/tri%3A%2F%2F192.168.88.42%3A20201%2Fcom.fontree.microservices.chain.dci%3Fanyhost%3Dtrue%26application%3Ddubbo.io%26bean.name%3DDciProvider%26cluster%3Dfailover%26export%3Dtrue%26interface%3Dcom.fontree.microservices.chain.dci%26loadbalance%3Drandom%26message_size%3D4%26metadata-type%3Dlocal%26methods%3DAddDciUser%2CCloseDciRegistration%2CCreateDciPreregistration%2CCreateDciRegistration%2CGetDciPayAmount%2CGetDciPayUrl%2CGetDciRegistrationcert%2CGetUploadUrl%2CQueryDciFeedback%2CQueryDciPay%2CQueryDciPreregistration%2CQueryDciRegistration%2CQueryDciUser%2CRetryDciRegistration%2CSubmitDciFeedback%2CUpdateDciUser%26module%3Dsample%26name%3Ddubbo.io%26organization%3Ddubbo-go%26owner%3Ddubbo-go%26pid%3D32324%26registry%3Dzookeeper%26registry.role%3D3%26release%3Ddubbo-golang-3.0.4%26retries%3D0%26service.filter%3Dtps%2Ctracing%26side%3Dprovider%26timestamp%3D1739861604%26tps.limit.interval%3D1000%26tps.limit.rate%3D30%26tps.limit.rejected.handler%3DDefaultValueHandler%26tps.limit.strategy%3DfixedWindow%26tps.limiter%3Dmethod-service%26warmup%3D100}"}
{"level":"\u001b[33mWARN\u001b[0m","time":"2025-02-18T14:56:17.618+0800","caller":"zookeeper/listener.go:319","message":"listenDirEvent->listenSelf(zk path{/dubbo/com.fontree.microservices.chain.dci/providers/tri%3A%2F%2F192.168.88.42%3A20201%2Fcom.fontree.microservices.chain.dci%3Fanyhost%3Dtrue%26application%3Ddubbo.io%26bean.name%3DDciProvider%26cluster%3Dfailover%26export%3Dtrue%26interface%3Dcom.fontree.microservices.chain.dci%26loadbalance%3Drandom%26message_size%3D4%26metadata-type%3Dlocal%26methods%3DAddDciUser%2CCloseDciRegistration%2CCreateDciPreregistration%2CCreateDciRegistration%2CGetDciPayAmount%2CGetDciPayUrl%2CGetDciRegistrationcert%2CGetUploadUrl%2CQueryDciFeedback%2CQueryDciPay%2CQueryDciPreregistration%2CQueryDciRegistration%2CQueryDciUser%2CRetryDciRegistration%2CSubmitDciFeedback%2CUpdateDciUser%26module%3Dsample%26name%3Ddubbo.io%26organization%3Ddubbo-go%26owner%3Ddubbo-go%26pid%3D32324%26registry%3Dzookeeper%26registry.role%3D3%26release%3Ddubbo-golang-3.0.4%26retries%3D0%26service.filter%3Dtps%2Ctracing%26side%3Dprovider%26timestamp%3D1739861604%26tps.limit.interval%3D1000%26tps.limit.rate%3D30%26tps.limit.rejected.handler%3DDefaultValueHandler%26tps.limit.strategy%3DfixedWindow%26tps.limiter%3Dmethod-service%26warmup%3D100}) goroutine exit now"}
{"level":"\u001b[33mWARN\u001b[0m","time":"2025-02-18T14:56:17.624+0800","caller":"zookeeper/listener.go:232","message":"delete oldNode{/dubbo/com.fontree.microservices.chain.dci/providers/tri%3A%2F%2F192.168.88.42%3A20201%2Fcom.fontree.microservices.chain.dci%3Fanyhost%3Dtrue%26application%3Ddubbo.io%26bean.name%3DDciProvider%26cluster%3Dfailover%26export%3Dtrue%26interface%3Dcom.fontree.microservices.chain.dci%26loadbalance%3Drandom%26message_size%3D4%26metadata-type%3Dlocal%26methods%3DAddDciUser%2CCloseDciRegistration%2CCreateDciPreregistration%2CCreateDciRegistration%2CGetDciPayAmount%2CGetDciPayUrl%2CGetDciRegistrationcert%2CGetUploadUrl%2CQueryDciFeedback%2CQueryDciPay%2CQueryDciPreregistration%2CQueryDciRegistration%2CQueryDciUser%2CRetryDciRegistration%2CSubmitDciFeedback%2CUpdateDciUser%26module%3Dsample%26name%3Ddubbo.io%26organization%3Ddubbo-go%26owner%3Ddubbo-go%26pid%3D32324%26registry%3Dzookeeper%26registry.role%3D3%26release%3Ddubbo-golang-3.0.4%26retries%3D0%26service.filter%3Dtps%2Ctracing%26side%3Dprovider%26timestamp%3D1739861604%26tps.limit.interval%3D1000%26tps.limit.rate%3D30%26tps.limit.rejected.handler%3DDefaultValueHandler%26tps.limit.strategy%3DfixedWindow%26tps.limiter%3Dmethod-service%26warmup%3D100}"}
{"level":"\u001b[33mWARN\u001b[0m","time":"2025-02-18T14:56:17.627+0800","caller":"zookeeper/listener.go:291","message":"[Zookeeper EventListener][listenDirEvent] The child with zk path {/dubbo/com.fontree.microservices.chain.dci/providers/tri%3A%2F%2F10.244.0.102%3A20201%2Fcom.fontree.microservices.chain.dci%3Fanyhost%3Dtrue%26application%3Ddubbo.io%26bean.name%3DDciProvider%26cluster%3Dfailover%26export%3Dtrue%26interface%3Dcom.fontree.microservices.chain.dci%26loadbalance%3Drandom%26message_size%3D4%26metadata-type%3Dlocal%26methods%3DAddDciUser%2CCloseDciRegistration%2CCreateDciPreregistration%2CCreateDciRegistration%2CGetDciPayAmount%2CGetDciPayUrl%2CGetDciRegistrationcert%2CGetUploadUrl%2CQueryDciFeedback%2CQueryDciPay%2CQueryDciPreregistration%2CQueryDciRegistration%2CQueryDciUser%2CRetryDciRegistration%2CSubmitDciFeedback%2CUpdateDciUser%26module%3Dsample%26name%3Ddubbo.io%26organization%3Ddubbo-go%26owner%3Ddubbo-go%26pid%3D1%26registry%3Dzookeeper%26registry.role%3D3%26release%3Ddubbo-golang-3.0.4%26retries%3D0%26service.filter%3Dtps%2Ctracing%26side%3Dprovider%26timestamp%3D1739849688%26tps.limit.interval%3D1000%26tps.limit.rate%3D300%26tps.limit.rejected.handler%3DDefaultValueHandler%26tps.limit.strategy%3DfixedWindow%26tps.limiter%3Dmethod-service%26warmup%3D100} has already been listened."}
{"level":"\u001b[31mERROR\u001b[0m","time":"2025-02-18T14:56:20.628+0800","caller":"config/graceful_shutdown_config.go:110","message":"The OfflineRequestWindowTimeout configuration is invalid: , and we will use the default value: 3s, err: time: invalid duration \"\""}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:20.628+0800","caller":"config/graceful_shutdown.go:196","message":"Graceful shutdown --- Keep waiting until sending/accepting requests finish or timeout. "}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:20.628+0800","caller":"config/graceful_shutdown.go:129","message":"Graceful shutdown --- Destroy protocols. "}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:20.628+0800","caller":"config/graceful_shutdown.go:144","message":"Graceful shutdown --- First destroy provider's protocols. "}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:20.628+0800","caller":"protocol/protocol.go:142","message":"Exporter unexport."}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:20.628+0800","caller":"protocol/invoker.go:92","message":"Destroy invoker: tri://:20201/grpc.health.v1.Health?accesslog=&app.version=&application=dubbo.io&auth=&bean.name=DubbogoHealthServer&cluster=failover&config.tracing=&environment=&execute.limit=&execute.limit.rejected.handler=&export=true&interface=grpc.health.v1.Health&loadbalance=random&message_size=4&metadata-type=local&module=sample&name=dubbo.io&organization=dubbo-go&owner=dubbo-go&param.sign=&pid=32324&registry.role=3&release=dubbo-golang-3.0.4&retries=&serialization=&service.filter=tracing&side=provider&timestamp=1739861604&tps.limit.interval=&tps.limit.rate=&tps.limit.rejected.handler=&tps.limit.strategy=&tps.limiter=&warmup="}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:20.628+0800","caller":"protocol/protocol.go:142","message":"Exporter unexport."}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:20.628+0800","caller":"protocol/invoker.go:92","message":"Destroy invoker: tri://:20201/grpc.reflection.v1alpha.ServerReflection?accesslog=&app.version=&application=dubbo.io&auth=&bean.name=DubbogoServerReflectionServer&cluster=failover&config.tracing=&environment=&execute.limit=&execute.limit.rejected.handler=&export=true&interface=grpc.reflection.v1alpha.ServerReflection&loadbalance=random&message_size=4&metadata-type=local&module=sample&name=dubbo.io&organization=dubbo-go&owner=dubbo-go&param.sign=&pid=32324&registry.role=3&release=dubbo-golang-3.0.4&retries=&serialization=&service.filter=tracing&side=provider&timestamp=1739861604&tps.limit.interval=&tps.limit.rate=&tps.limit.rejected.handler=&tps.limit.strategy=&tps.limiter=&warmup="}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:20.628+0800","caller":"protocol/protocol.go:142","message":"Exporter unexport."}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:20.628+0800","caller":"protocol/invoker.go:92","message":"Destroy invoker: tri://:20201/com.fontree.microservices.chain.dci?accesslog=&app.version=&application=dubbo.io&auth=&bean.name=DciProvider&cluster=failover&config.tracing=&environment=&execute.limit=&execute.limit.rejected.handler=&export=true&interface=com.fontree.microservices.chain.dci&loadbalance=random&message_size=4&metadata-type=local&module=sample&name=dubbo.io&organization=dubbo-go&owner=dubbo-go&param.sign=&pid=32324&registry=zookeeper&registry.role=3&release=dubbo-golang-3.0.4&retries=0&serialization=&service.filter=tps%2Ctracing&side=provider&timestamp=1739861604&tps.limit.interval=1000&tps.limit.rate=30&tps.limit.rejected.handler=DefaultValueHandler&tps.limit.strategy=fixedWindow&tps.limiter=method-service&warmup=100"}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:20.628+0800","caller":"config/graceful_shutdown.go:155","message":"Graceful shutdown --- Second Destroy consumer's protocols. "}
{"level":"\u001b[34mINFO\u001b[0m","time":"2025-02-18T14:56:20.630+0800","caller":"config/graceful_shutdown.go:113","message":"Graceful shutdown --- Execute the custom callbacks."}