双向流 BidiStreamForClient 的问题 #2756
Unanswered
zhangcunli
asked this question in
Q&A
Replies: 3 comments 4 replies
-
zhangcunli: 有待 cunli 提供最小可验证测试方案。 |
Beta Was this translation helpful? Give feedback.
1 reply
-
写了个最小验证 demo: [email protected]:zhangcunli/triple-stream-test.git 测试 1:testReuseCli(): 复用 所以,最佳用法是像 testReuseSvc() 中复用 |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
我在使用 dubbo-go 的时候发现一个问题,请教一下:
client: dubbo-go: v3.2.0-rc2
server: dubbo v3.3.0
registry: zookeeper
双向流模式:CallBidiStream
client: dubbo.NewInstance 方式创建客户端
客户端代码: 其中 biStream 类型为:*triple_protocol.BidiStreamForClient
for ; ; { //1.receive triple server msg err := biStream.Receive(response) if err != nil { break } }
问题 1:biStream 客户端没有关闭长连接的接口;如果服务端不调用 onCompleted,那么 Receive 会永久 block;
客户端应当具有主动 Close 能力才对,底层使用的是 grpc,而 grpc 客户端是能够主动关闭连接的。
问题 2:Java 服务端调用 onCompleted() 后,biStream.Receive 返回 EOF
但是和服务端的 TCP 连接仍然存在;我知道 dubbo client 内部是连接池,但是我测试了一下,TCP 连接似乎并没有被复用
Beta Was this translation helpful? Give feedback.
All reactions