dubbo-go
dubbo-go copied to clipboard
使用dubbo协议,消费端会无限等待,服户端会出现error:EOF错误
Environment
-
Server:
-
Client:
-
Protocol:
-
Registry:
Issue description
Logs
Click me to check logs
Copy logs to here.
服务端注册
func RegisterDubboRpcServer(greeter *GreeterService) {
ins, err := dubbo.NewInstance(
dubbo.WithName("go-blog.dubbo.rgpc"),
dubbo.WithRegistry(
registry.WithNacos(),
registry.WithAddress("192.168.14.137:8848"),
registry.WithNamespace("dubbo-go"),
registry.WithUsername("nacos"),
registry.WithPassword("nacos"),
),
//dubbo.WithProtocol(
// protocol.WithDubbo(),
// protocol.WithPort(20001)),
)
if err != nil {
panic(err)
}
srv, err := ins.NewServer(
server.WithServerProtocol(
protocol.WithDubbo(),
protocol.WithPort(20001),
),
)
if err != nil {
panic(err)
}
if err := greet.RegisterGreeterHandler(srv, greeter); err != nil {
panic(err)
}
// 用来测试的,换一种注册方式
//if err := srv.Register(greeter, nil, server.WithInterface("GreeterService"), server.WithSerialization(constant.Hessian2Serialization)); err != nil {
// panic(err)
//}
if err := srv.Serve(); err != nil {
logger.Error(err)
}
}
客户端注册
func RegisterDubboRpcClient() {
ins, err := dubbo.NewInstance(
dubbo.WithName("go-wxmc.dubbo.rgpc"),
dubbo.WithRegistry(
registry.WithNacos(),
registry.WithAddress("192.168.14.137:8848"),
registry.WithNamespace("dubbo-go"),
registry.WithUsername("nacos"),
registry.WithPassword("nacos"),
),
)
if err != nil {
panic(err)
}
// configure the params that only client layer cares
cli, err := ins.NewClient(
client.WithClientProtocolDubbo(),
client.WithClientSerialization(constant.Hessian2Serialization),
)
if err != nil {
panic(err)
}
svc, err := v1.NewGreeter(cli)
if err != nil {
panic(err)
}
//这句调用后会出现无限等待
resp, err := svc.SayHello(context.Background(), &v1.HelloRequest{Name: "dubbo rpc"})
if err != nil {
//fmt.Printf("098FB268", err)
panic(err)
}
fmt.Printf("C272AB2E", resp)
}
客户端调用后,进入无限等待 服务端会出现错误:
2025-05-05 21:38:15 INFO getty/listener.go:220 session{session session-closed, Read Bytes: 381, Write Bytes: 389, Read Pkgs: 22, Write Pkgs: 22} is closing......
2025-05-05 21:38:15 INFO getty/listener.go:212 session{session session-closed, Read Bytes: 381, Write Bytes: 389, Read Pkgs: 22, Write Pkgs: 22} got error{read tcp 10.100.2.2:20001->10.100.2.2:64621: wsarecv: An existing connection was forcibly closed by the remote host.}, will be closed.
2025-05-05 21:38:15 INFO getty/listener.go:212 session{session session-closed, Read Bytes: 416, Write Bytes: 424, Read Pkgs: 24, Write Pkgs: 24} got error{read tcp 10.100.2.2:20001->10.100.2.2:64552: wsarecv: An existing connection was forcibly closed by the remote host.}, will be closed.
2025-05-05 21:38:15 INFO getty/listener.go:220 session{session session-closed, Read Bytes: 416, Write Bytes: 424, Read Pkgs: 24, Write Pkgs: 24} is closing......
2025-05-05 21:38:15 INFO getty/listener.go:220 session{session session-closed, Read Bytes: 381, Write Bytes: 389, Read Pkgs: 22, Write Pkgs: 22} is closing......
2025-05-05 21:38:15 INFO getty/listener.go:212 session{session session-closed, Read Bytes: 381, Write Bytes: 389, Read Pkgs: 22, Write Pkgs: 22} got error{read tcp 10.100.2.2:20001->10.100.2.2:64648: wsarecv: An existing connection was forcibly closed by the remote host.}, will be closed.
2025-05-05 21:38:15 INFO getty/listener.go:220 session{session session-closed, Read Bytes: 381, Write Bytes: 389, Read Pkgs: 22, Write Pkgs: 22} is closing......
2025-05-05 21:38:20 INFO getty/listener.go:203 got session:session {server:TCP_SERVER:19:10.100.2.2:20001<->10.100.2.2:49687}, Read Bytes: 0, Write Bytes: 0, Read Pkgs: 0, Write Pkgs: 0
2025-05-05 21:38:20 INFO getty/listener.go:203 got session:session {server:TCP_SERVER:20:10.100.2.2:20001<->10.100.2.2:49688}, Read Bytes: 0, Write Bytes: 0, Read Pkgs: 0, Write Pkgs: 0
2025-05-05 21:38:23 ERROR dubbo/dubbo_codec.go:209 pkg.Unmarshal(len(@data):0) = error:EOF
dubbo.apache.org/dubbo-go/v3/protocol/dubbo/impl.unmarshalRequestBody
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/protocol/dubbo/impl/hessian.go:255
dubbo.apache.org/dubbo-go/v3/protocol/dubbo/impl.HessianSerializer.Unmarshal
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/protocol/dubbo/impl/hessian.go:57
dubbo.apache.org/dubbo-go/v3/protocol/dubbo/impl.(*ProtocolCodec).Decode
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/protocol/dubbo/impl/codec.go:190
dubbo.apache.org/dubbo-go/v3/protocol/dubbo/impl.(*DubboPackage).Unmarshal
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/protocol/dubbo/impl/package.go:93
dubbo.apache.org/dubbo-go/v3/protocol/dubbo.(*DubboCodec).decodeRequest
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/protocol/dubbo/dubbo_codec.go:200
dubbo.apache.org/dubbo-go/v3/protocol/dubbo.(*DubboCodec).Decode
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/protocol/dubbo/dubbo_codec.go:170
dubbo.apache.org/dubbo-go/v3/remoting/getty.(*RpcServerPackageHandler).Read
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/remoting/getty/readwriter.go:112
github.com/apache/dubbo-getty.(*session).handleTCPPackage
F:/go/pkg/mod/github.com/apache/[email protected]/session.go:698
github.com/apache/dubbo-getty.(*session).handlePackage
F:/go/pkg/mod/github.com/apache/[email protected]/session.go:614
runtime.goexit
D:/Program Files/Go/src/runtime/asm_amd64.s:1700
2025-05-05 21:38:23 WARN [email protected]/session.go:614 {server:TCP_SERVER:20:10.100.2.2:20001<->10.100.2.2:49688}, [session.handleTCPPackage] = len{0}, error:EOF
dubbo.apache.org/dubbo-go/v3/protocol/dubbo/impl.unmarshalRequestBody
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/protocol/dubbo/impl/hessian.go:255
dubbo.apache.org/dubbo-go/v3/protocol/dubbo/impl.HessianSerializer.Unmarshal
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/protocol/dubbo/impl/hessian.go:57
dubbo.apache.org/dubbo-go/v3/protocol/dubbo/impl.(*ProtocolCodec).Decode
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/protocol/dubbo/impl/codec.go:190
dubbo.apache.org/dubbo-go/v3/protocol/dubbo/impl.(*DubboPackage).Unmarshal
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/protocol/dubbo/impl/package.go:93
dubbo.apache.org/dubbo-go/v3/protocol/dubbo.(*DubboCodec).decodeRequest
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/protocol/dubbo/dubbo_codec.go:200
dubbo.apache.org/dubbo-go/v3/protocol/dubbo.(*DubboCodec).Decode
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/protocol/dubbo/dubbo_codec.go:170
dubbo.apache.org/dubbo-go/v3/remoting/getty.(*RpcServerPackageHandler).Read
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/remoting/getty/readwriter.go:112
github.com/apache/dubbo-getty.(*session).handleTCPPackage
F:/go/pkg/mod/github.com/apache/[email protected]/session.go:698
github.com/apache/dubbo-getty.(*session).handlePackage
F:/go/pkg/mod/github.com/apache/[email protected]/session.go:614
runtime.goexit
D:/Program Files/Go/src/runtime/asm_amd64.s:1700
dubbo.apache.org/dubbo-go/v3/protocol/dubbo.(*DubboCodec).decodeRequest
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/protocol/dubbo/dubbo_codec.go:211
dubbo.apache.org/dubbo-go/v3/protocol/dubbo.(*DubboCodec).Decode
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/protocol/dubbo/dubbo_codec.go:170
dubbo.apache.org/dubbo-go/v3/remoting/getty.(*RpcServerPackageHandler).Read
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/remoting/getty/readwriter.go:112
github.com/apache/dubbo-getty.(*session).handleTCPPackage
F:/go/pkg/mod/github.com/apache/[email protected]/session.go:698
github.com/apache/dubbo-getty.(*session).handlePackage
F:/go/pkg/mod/github.com/apache/[email protected]/session.go:614
runtime.goexit
D:/Program Files/Go/src/runtime/asm_amd64.s:1700
dubbo.apache.org/dubbo-go/v3/protocol/dubbo.(*DubboCodec).Decode
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/protocol/dubbo/dubbo_codec.go:172
dubbo.apache.org/dubbo-go/v3/remoting/getty.(*RpcServerPackageHandler).Read
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/remoting/getty/readwriter.go:112
github.com/apache/dubbo-getty.(*session).handleTCPPackage
F:/go/pkg/mod/github.com/apache/[email protected]/session.go:698
github.com/apache/dubbo-getty.(*session).handlePackage
F:/go/pkg/mod/github.com/apache/[email protected]/session.go:614
runtime.goexit
D:/Program Files/Go/src/runtime/asm_amd64.s:1700
dubbo.apache.org/dubbo-go/v3/remoting/getty.(*RpcServerPackageHandler).Read
F:/go/pkg/mod/dubbo.apache.org/dubbo-go/[email protected]/remoting/getty/readwriter.go:114
github.com/apache/dubbo-getty.(*session).handleTCPPackage
F:/go/pkg/mod/github.com/apache/[email protected]/session.go:698
github.com/apache/dubbo-getty.(*session).handlePackage
F:/go/pkg/mod/github.com/apache/[email protected]/session.go:614
runtime.goexit
D:/Program Files/Go/src/runtime/asm_amd64.s:1700
github.com/apache/dubbo-getty.(*session).handleTCPPackage
F:/go/pkg/mod/github.com/apache/[email protected]/session.go:706
github.com/apache/dubbo-getty.(*session).handlePackage
F:/go/pkg/mod/github.com/apache/[email protected]/session.go:614
runtime.goexit
D:/Program Files/Go/src/runtime/asm_amd64.s:1700
这个是老框架了,应该不是bug,是我使用上的错误吧.
Hessian2 序列化,你的自定义pojo 有注册到 Hessian2 吗, 像这样:
hessian.RegisterPOJO(&common.URL{})