我正在构建一个需要处理数万个活动套接字的高并发服务器。我最初使用 epoll 来构建一个基于事件的服务器,它在中等规模(数千个活动套接字)下运行良好。但是当我的并发超过 10,000 个套接字时,它似乎变得不稳定。所以我正在考虑 libevent(或 libev),因为它是一个成熟的项目,并声称能够“处理数万个活动套接字”。
我也在考虑使用 UDT,因为它是一个“可靠的 UDP”,并且由于开销和内存使用,我开始遇到 TCP 问题。所以一个很自然的想法是使用 libevent 作为我的事件框架工作,使用 UDT 作为传输协议。我知道 UDT 提供了自己的一组 epoll 操作。这是否意味着它不能与常规的 linux epoll 一起使用?如果是这样,它将无法与 libevent 或 libev 一起使用,因为它们是基于 Linux epoll 构建的。
有没有人在 UDT 和 epoll / libevent / libev 上工作过?UDT 可以与它们中的任何一个一起使用吗?
任何帮助将不胜感激。谢谢。