如何反压 TCP 客户端
How to back-pressure TCP client
我有一个Vert.x NetServer,并从客户端接受一个连接,假设我暂停socket ReadStream,那么我不会从连接接收任何缓冲区,同时,假设客户端继续发送消息,我想知道是否有可能反压客户端停止而不是继续发送?如果不可能,那些传入的数据存储在哪里?我可以检查有多少数据已经进入但未被读取吗?
感谢任何帮助。
看来你所有的问题都已经被官方文档解决了:
https://vertx.io/docs/vertx-core/java/#streams
传入消息存储在写入队列中。如果写队列满了,可以用pause()
方法要求客户端暂停,用resume()
方法恢复。
或者,这也包含在文档中,您可以使用 Pipe
来为您处理。
我有一个Vert.x NetServer,并从客户端接受一个连接,假设我暂停socket ReadStream,那么我不会从连接接收任何缓冲区,同时,假设客户端继续发送消息,我想知道是否有可能反压客户端停止而不是继续发送?如果不可能,那些传入的数据存储在哪里?我可以检查有多少数据已经进入但未被读取吗?
感谢任何帮助。
看来你所有的问题都已经被官方文档解决了:
https://vertx.io/docs/vertx-core/java/#streams
传入消息存储在写入队列中。如果写队列满了,可以用pause()
方法要求客户端暂停,用resume()
方法恢复。
或者,这也包含在文档中,您可以使用 Pipe
来为您处理。