我的目的是将 WebSockets 与自己的 TCP/IP 或 ISO/OSI 堆栈一起使用。我想对从客户端到应用程序服务器的所有请求进行负载平衡(我们知道 WebSockets 只能与已建立连接的一台服务器一起使用)。我希望能够连接到一个节点并向任何节点发送请求。
算法如下:
1. 客户端与负载均衡器后面的一个节点建立连接。
2. 客户端通过 WebSocket 向负载均衡器发送数据。
3. 负载均衡器接收数据并将其发送到任何服务器。
4. 服务器看到数据并将其发送给应用程序。即使尚未建立连接,服务器也不会丢弃数据包,它只是将数据包发送到应用程序。
在这种情况下,我们可以轻松地对 WebSockets 请求进行负载平衡。我试图了解如何重写 TCP/IP 堆栈并让数据包直接进入用户空间中的应用程序,但我很困惑。
我们需要使用 DPDK 吗?是的,那么您能否展示一个如何直接接收和发送数据包或如何跳过连接检查的最小示例?如果没有,那么在这种情况下我们需要使用什么?