您好我正在编写套接字服务器,目前我有2个选项
使用PHP
使用C ++
我需要知道的是,它们中的哪一个更可靠和可扩展。在搜索谷歌后我发现很多C ++可以照顾我的Scale需求但事情是C ++需要更多编码然后PHP而且在C ++上部署有点困难。
PHP听起来很有前途(因为SQL和SOCKETS的原生API也更容易在跨平台上部署)但我不知道基于PHP的服务器的可扩展性。目前我想支持至少1k - 2k并发连接。 PHP可以承担这个负载吗?
还有什么方法可以在PHP中实现多线程(这样我就可以在2个或更多线程上分配工作负载,而不是1个重载线程,保存所有用户和请求)。
需要包含我的服务器是基本机器。
处理器:AMD Sempron 3000 +
RAM:2 GB
HDD:80 Gigs
我计划在一段时间后转移到更快的服务器。
提前致谢。
答案 0 :(得分:0)
我不会使用PHP。 PHP没有内置的多线程支持。使用C ++或Java。
答案 1 :(得分:0)
PHP没有多线程,2k客户端将“杀死”单个脚本。
C ++很好,对于很多(轻量级)任务而言,带有epoll多路分解的单个线程是最快的方式,如果没有,有预先线程(比如带有线程的prefork buth),只有当一个处理器核心没有时才需要fork能够满足所有要求。使用状态机编写套接字代码,以便您可以使用不同的实现并在单线程和多线程行为之间切换。
答案 2 :(得分:0)
在Java上你有Netty和Mina
答案 3 :(得分:0)
PHP绝对是一个糟糕的选择 - 没有线程 - 您的基本架构将是fork()每个连接的进程。不好玩。
C ++可能是要走的路,尽管你可能会使用其他解释语言并对其进行评估。
在承诺用C ++写东西之前,我当然会考虑一个事件驱动的服务器端javascript方法(参见http://nodejs.org),或者可能是python(twisted?)或ruby-based。