0

我正在构建一个需要处理数万个活动套接字的高并发服务器。我最初使用 epoll 来构建一个基于事件的服务器,它在中等规模(数千个活动套接字)下运行良好。但是当我的并发超过 10,000 个套接字时,它似乎变得不稳定。所以我正在考虑 libevent(或 libev),因为它是一个成熟的项目,并声称能够“处理数万个活动套接字”。

我也在考虑使用 UDT,因为它是一个“可靠的 UDP”,并且由于开销和内存使用,我开始遇到 TCP 问题。所以一个很自然的想法是使用 libevent 作为我的事件框架工作,使用 UDT 作为传输协议。我知道 UDT 提供了自己的一组 epoll 操作。这是否意味着它不能与常规的 linux epoll 一起使用?如果是这样,它将无法与 libevent 或 libev 一起使用,因为它们是基于 Linux epoll 构建的。

有没有人在 UDT 和 epoll / libevent / libev 上工作过?UDT 可以与它​​们中的任何一个一起使用吗?

任何帮助将不胜感激。谢谢。

4

2 回答 2

3

UDT 公开了一个 epoll API,可用于将协议与 epoll 一起使用。有关详细信息,请参阅http://udt.sourceforge.net/udt4/doc/epoll.htm

于 2013-02-25T12:55:49.587 回答
-1

经过一番研究,我发现 UDT 套接字不是文件描述符,因此无法使用 epoll 处理。

于 2012-12-16T18:47:49.613 回答