双向流 BidiStreamForClient 的问题 #2756
Replies: 3 comments 5 replies
-
Beta Was this translation helpful? Give feedback.
-
zhangcunli: 有待 cunli 提供最小可验证测试方案。 |
Beta Was this translation helpful? Give feedback.
-
写了个最小验证 demo: git@github.com:zhangcunli/triple-stream-test.git 测试 1:testReuseCli(): 复用 所以,最佳用法是像 testReuseSvc() 中复用 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
我在使用 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