今天,有一个系统可以在本地磁盘进入时向本地磁盘写入数据包捕获文件。出于容错的原因,将这些文件作为第一步放到本地磁盘被认为是可取的。如果客户端死亡,需要重新连接或在其他地方长大,我们可以从磁盘上重放。
数据管道中的下一个步骤是尝试将这些数据放到磁盘上,然后发送给远程客户端。假设有足够的磁盘空间,我认为使用本地磁盘(以及上面的页面缓存)作为持久的无限FIFO非常方便。使用文件系统来保持生产者和消费者之间的耦合也是可取的。
在我的研究中,我没有找到很多关于这类建筑的指导。更具体地说,我还没有看到在流行的开源库/框架中建立的模式,这些模式是用来读取文件的,因为它正在被编写出来。
我的问题:
发布于 2020-03-14 16:55:51
基于文件的解决方案听起来很笨重,但可以工作。类似于tail -f是如何做到的:
read文件直到EOF,但不关闭它困难通常是文件的旋转和清理,即您需要监视新的文件和/或截断。
尽管如此,直接连接到数据包捕获接口或设置客户可以订阅的队列可能更有效。
https://stackoverflow.com/questions/60684841
复制相似问题