网络服务器 - 主动与反应模式

时间:2017-09-15 09:43:50

标签: c++ sockets server network-programming libevent

Context(C ++) :我需要开发一个网络服务器,每秒可以处理1000多个客户端,每秒超过100个请求。 每个请求在客户端和服务器之间启动状态机,其中客户端和服务器在服务器发送最终响应之前交换更多数据。

问题 :某些处理是由第三方库完成的,该库请求来自我们的回调,并在需要来自客户端的某些数据时调用这些回调。所以,我们不控制这个线程,必须等待来自客户端的数据才能进一步处理。

问题 :由于消息数量如此之多,我们决定使用libevent或其衍生产品,例如: https://github.com/facebook/wanglehttps://github.com/Qihoo360/evpp

问题在于libevent是基于reactor模式的,并且我们没有办法在进入状态机时立即将处理留在线程中。

所以,我的问题是,如果proactor模式在这里会更好,是否有任何库可以给我们这种行为?

[EDIT1]

好的,经过深思熟虑,我们决定继续在申请前面做一个“代理”。然后,此代理可以使用此第三方将负载分发到我们应用程序的多个运行实例。然后我们可以使用reactor模式。

欢迎任何其他建议..

0 个答案:

没有答案