首页 > 解决方案 > 顶点 tcp 客户端丢弃数据包

问题描述

我已经创建了 Vertx TCP Server 和相应的 TCP Client。TCP 客户端的工作是从特定目录读取日志(gzip 格式)并不断上传到服务器。然后服务器会做一些处理并持久化数据。由于日志采用 gzip 格式,因此日志文件的平均大小为 144 KB。我的 TCP 客户端模拟器产生 4 个线程,每个线程将创建 100 个这样的日志文件并将它们上传到顶点服务器。所以最后,我希望看到 400 (= 100 * 4) 个文件上传到服务器。但令我惊讶的是,一旦模拟器完成,我看到服务器只处理了 76 个文件,并且没有剩余 324 个文件的迹象。我已经多次运行它,但每次服务器处理大约 75 个文件。从 TCP 客户端日志中,我看到所有 400 个文件都已上传。所以看起来服务器正在丢弃一些数据包。但是从服务器日志中,我看到只处理了大约 76 个文件。后来我将模拟器生成的压缩日志文件大小减小到 8KB(现在每个日志文件的日志条目数减少了),这次我看到服务器端处理了大约 398 个文件。

显然这似乎是一些配置问题。也许我必须为 Vertex 服务器配置更多资源(实例、增加接收缓冲区大小和事件队列大小等)。但是,任何人都将如何知道数据包将被丢弃的限制。

  1. 更准确地说,在这种情况下需要什么“特定”配置。
  2. 其次,是否可以为 Vertx“TCP”客户端/服务器配置某种确认机制,以便客户端只有在成功处理之前上传的文件时才能上传后续文件。

标签: tcpvert.x

解决方案


推荐阅读