-
Notifications
You must be signed in to change notification settings - Fork 963
Closed
Labels
Milestone
Description
Environment
- Server: Dubbo-go, branch release-3.1
- Client: Dubbo-go, branch release-3.1
- Protocol: Dubbo
- Registry: zk
Issue description
使用release-3.1分支的dubbogo进行接口级别的泛化调用时,需要请求2次,才能返回正常结果。
参考dubbo-go-sample/generic/default中的例子:
如下,服务端dubbogo 指定registry-type: interface
registries:
zk:
protocol: zookeeper
timeout: 3s
address: 127.0.0.1:2181
registry-type: interface
当client进行如下调用时,第一次会提示Failed to invoke the method $invoke,第二次惨能正常返回结果
func callGetUser(refConf config.ReferenceConfig) {
service := refConf.GetRPCService().(*generic.GenericService)
resp, _ := service.Invoke(
context.TODO(),
"GetUser1",
[]string{"java.lang.String"},
[]hessian.Object{"A003"},
)
fmt.Println(resp)
<-time.After(time.Second)
resp, _ = service.Invoke(
context.TODO(),
"GetUser1",
[]string{"java.lang.String"},
[]hessian.Object{"A003"},
)
fmt.Println(resp)
}
结果如下,第一次调用报错,返回结果nil,第二次正常
2024-01-31 22:42:36 WARN proxy/proxy.go:212 [CallProxy] received rpc err: Failed to invoke the method $invoke. No provider available for the service dubbo://:@:/?interface=org.apache.dubbo.samples.UserProvider&group=&version= from registry zookeeper://127.0.0.1:2181?registry=zookeeper®istry.group=®istry.label=true®istry.namespace=®istry.preferred=false®istry.role=0®istry.timeout=5s®istry.ttl=15m®istry.weight=0®istry.zone=&remote-client-name=dubbo.registries-zookeeper-127.0.0.1%3A2181&simplified=false on the consumer 192.168.199.108 using the dubbo version 3.1.1 .Please check if the providers have been started and registered.
<nil>
map[age:48 class:org.apache.dubbo.samples.User iD:A003 name:Joe time:2024-01-31 22:42:37.224 +0800 CST]