I have written a proxy server for Linux using Poco but have since been reading up on the various approaches to achieving TCP/IP server scalability. I will need the server to handle persistent connections (not HTTP traffic) with an upper limit of about 250 simultaneous 开发者_运维百科connections. Each connection typically uses about 5-10Kb/sec and the best possible latency in handling traffic is crucial.
As it stands I am using the Poco SocketReactor which uses the Reactor model with a select() call at its heart however I have had a read on the C10K problem as well as few other resources and it seems that using this approach might not be the best idea. I believe there is a test implementation in the Poco libs that uses poll() so this could be an option to improve things.
Does anyone have any experience using a Poco SocketReactor and do you have any idea how well it might scale for my scenario? If it will not scale well, suggestions on alternatives would be appreciated.
On Windows Poco does use select(), however on Linux/BSD/OSX it will use the best possible implementation out of:
- select()
- poll()
- epoll()
- /dev/poll
精彩评论