我在 Linux 机器上运行了一项服务,该服务通过 UDP 接收相当稳定的数据包流。使用 UDP 时偶尔丢失或损坏数据包是正常的。
但是,该服务正在积极开发中,更新频率相当高。每次部署更新时,都必须重新启动,重新启动期间到达的所有数据包都可能被丢弃。此外,时不时地会有错误进入生产环境,导致服务持续一段时间无法运行。
是否存在一个相当简单的服务可以让我在我的服务和传入的 UDP 数据包之间坚持使用,如果服务可用,它只会将数据包传递给服务,或者,如果服务由于某种原因关闭,它会将数据包排队直到服务恢复,然后再传递它们?
答案1
答案2
Systemd 有一种在守护进程重启之间保留套接字的方法(不会丢失数据)。不确定它是否也适用于 UDP 套接字,但我希望如此。没有更多信息,我的 Google 能力让我失望了。