作者回复: 如果是只有一个IP地址的客户端,那的确是受限于端口数量。
不过,如果是服务器端,那可以接受的连接就多得多了(组合客户端IP+端口)。
作者回复: 注意区分客户端还是服务器端:客户端使用单个IP去访问服务器的时候,端口号数是最大限制;服务器端没有这个限制。
作者回复: 还记得虚拟文件系统(VFS)吧,使用套接字接口的时候,也是要分配一个文件描述符,然后后续所有的I/O都通过这个文件描述符来操作(包括IO模型中要判断可读写状态)。
作者回复: 因为一次读有可能不会读到所有数据,但这种情况不会有新的事件通知了
作者回复: 是的,都需要额外的开发
作者回复: 其实并不是 65530,Linux使用五元组标志一个连接:协议、源IP、源端口、目的IP、目的端口。根据这些,你可以算下理论上最大支持的连接数。
作者回复: c10k对服务器要求很低,甚至个人开发机都可以;c10m对硬件有一些要求,比如需要支持dpdk的网卡
作者回复: poll需要轮询查询每个fd的状态,所以时间复杂度是O(N),N是fd的个数
作者回复: 嗯嗯,其实DPDK本身就包含了大量的软硬件优化
作者回复: 都可以
作者回复: HTTP2支持多路复用
作者回复: 不对,不是每个请求都会直接发送给数据库