Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用Nacos注册,提示异常.Nacos部署的服务版本是2.0.3 #47

Open
zhangyinhao1234 opened this issue Apr 7, 2024 · 1 comment

Comments

@zhangyinhao1234
Copy link

代码:
package shenyu

import (
"encoding/json"
"github.com/apache/shenyu-client-golang/clients/nacos_client"
"github.com/apache/shenyu-client-golang/common/constants"
"github.com/apache/shenyu-client-golang/common/shenyu_sdk_client"
"github.com/apache/shenyu-client-golang/model"
"github.com/nacos-group/nacos-sdk-go/clients/naming_client"
"github.com/nacos-group/nacos-sdk-go/vo"

"net"
"pki-go-server/src/com/ifyou/pki/conf"

)

func RegisterShenYu() {
//设置nacos环境配置
ncp := &nacos_client.NacosClientParam{
IpAddr: "10.246.162.117",
Port: 18848,
NamespaceId: "d1bd133f-f415-404b-8e2c-60847ce426d4",
}

//元数据是必要的参数,这将注册到shenyu网关使用
metaData := &model.URIRegister{
	Protocol:    "http",                 //需要用户提供
	AppName:     "pki-go-server",        //需要用户提供
	ContextPath: "/godemo/api",          //需要用户提供
	RPCType:     constants.RPCTYPE_HTTP, //需要用户提供
	Host:        getLocalIP(),           //需要用户提供
	Port:        "8080",                 //需要用户提供
}
metaDataStringJson, _ := json.Marshal(metaData)

//初始化Nacos注册实例信息
nacosRegisterInstance := vo.RegisterInstanceParam{
	Ip:          "10.246.162.117", //需要用户提供
	Port:        18848,            //需要用户提供
	ServiceName: "pki-go-server",  //需要用户提供
	Weight:      10,               //需要用户提供
	Enable:      true,             //需要用户提供
	Healthy:     true,             //需要用户提供
	Ephemeral:   true,             //需要用户提供
	Metadata:    map[string]string{"contextPath": "contextPath", "uriMetadata": string(metaDataStringJson)},
}

sdkClient := shenyu_sdk_client.GetFactoryClient(constants.NACOS_CLIENT)
result, createResult, err := sdkClient.NewClient(ncp)
if !createResult && err != nil {
	conf.LogEntry.Fatalf("Create nacos client error : %v", err)
}

nc := &nacos_client.ShenYuNacosClient{
	NacosClient: result.(*naming_client.NamingClient),
}

registerResult, err := nc.RegisterServiceInstance(nacosRegisterInstance)
if !registerResult && err != nil {
	conf.LogEntry.Fatalf("Register nacos Instance error : %v", err)
} else {
	conf.LogEntry.Infof("Register nacos Instance success : %v", registerResult)
}

//do your logic

}

func getLocalIP() string {
addrs, err := net.InterfaceAddrs()
if err != nil {
return "unknow"
}

for _, address := range addrs {
	if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
		if ipnet.IP.To4() != nil {
			gInnerIP := ipnet.IP.String()
			return gInnerIP
		}
	}
}
return "unknow"

}

2024-04-07T15:03:16.118+0800 ERROR nacos_server/nacos_server.go:230 api</v1/ns/instance>,method:, params:<{"app":"","clusterName":"","enable":"true","ephemeral":"true","groupName":"DEFAULT_GROUP","healthy":"true","ip":"10.246.162.117","metadata":"{"contextPath":"contextPath","uriMetadata":"{\"protocol\":\"http\",\"appName\":\"pki-go-server\",\"contextPath\":\"/godemo/api\",\"rpcType\":\"http\",\"host\":\"192.168.137.59\",\"port\":\"8080\"}"}","namespaceId":"d1bd133f-f415-404b-8e2c-60847ce426d4","port":"18848","serviceName":"DEFAULT_GROUP@@pki-go-server","weight":"10"}>, call domain error:<request return error code 403> , result:<{"timestamp":"2024-04-07T15:03:11.808+08:00","status":403,"error":"Forbidden","message":"unknown user!","path":"/nacos/v1/ns/instance"}>
FATA[0004] RegisterServiceInstance failure! ,error is :retry3times request failed,err=request return error code 403

可能的原始是否为,Nacos需要用户名密码登陆. shenyu-sdk使用的是Nacos 1V的包,导致无法注册 抛出403?

@moremind
Copy link
Member

shenyu use nacos is 2.x version

This was referenced Nov 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants