长连接下服务器端需要配置什么
❶ 如何配置服务器
在网络存在的环境下,服务器可以提供的服务类型各不相同,所以服务器又分为几种,分别是文件服务器、数据库服务器、应用程序服务器以及web服务器,下面我们就以文件服务器为例来介绍一下服务器的设置方法吧。
服务器的设置方法:
第一步:首先需要登录计算机的操作系统,在登录时需要以管理员的身份进行,进入系统以后,使用鼠标选择开始菜单,然后再选择管理工具选项,进入管理工具选项以后,在列表当中选择相应的服务器,这时会自动弹出一个窗口,然后点击添加选项,然后根据配置向导进行下一步操作。
第二步:进行检测,然后选择自定义配置选项,进入下一步操作。
第三步:选择页面当中的服务器角色按钮,然后选择其中的文件服务器选项,接着使用鼠标点击下一步选项。
第四步:这时就可以将文件服务器的磁盘配额打开了,接着再选择相应的复选框,根据实际要求进行相应的设置,输入最合适的数值。
第五步:将文件服务器的索引服务打开,然后选择是按钮,将索引服务启用,接着使用鼠标点击下一步选项。
第六步:进入下一步页面以后,使用鼠标点击选择总结选项,进入到相应的窗口以后,对完成的设置进行检查,没有差错就进入下一步。
第七步:通过添加向导操作将所选用的服务进行启用操作,然后页面就会出现共享文件夹的向导,完成以上操作以后,点击下一步选项。
第八步:将文件夹的路径打开,然后使用鼠标点击浏览选项,在相应的列表当中,找到公共资源的文件夹,然后点击确定按钮,然后进入下一步操作。
❷ 京东大佬细说:Nginx反向代理时保持长连接,看完直呼"学到了!"
前言:
深入了解nginx,get到nginx的一些性能优化方向。除了了解如何保持长连接,也通过本案例学习到开源中间件的一些常用定位思路和优化方法。
场景描述
HTTP1.1之后,HTTP协议支持持久连接,也就是长连接,优点在于在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。如果我们使用了nginx去作为反向代理或者负载均衡,从客户端过来的长连接请求就会被转换成短连接发送给服务器端。为了支持长连接,我们需要在nginx服务器上做一些配置。
要求
到长连接,我们必须做到以下两点:
i.从client到nginx是长连接
ii.从nginx到server是长连接
对于客户端而言,nginx其实扮演着server的角色,反之,之于server,nginx就是一个client。
保持和Client的长连接
我们要想做到Client与Nginx之间保持长连接,需要:
i.Client发送过来的请求携带“keep-alive”header。
ii.Nginx设置支持keep-alive。
HTTP配置
默认情况下,nginx已经开启了对client连接的keepalive 支持。对于特殊场景,可以调整相关参数。
大多数情况下,keepalive_requests = 100也够用,但是对于 QPS 较高的场景,非常有必要加大这个参数,以避免出现大量连接被生成再抛弃的情况,减少TIME_WAIT。QPS=10000 时,客户端每秒发送 10000 个请求 (通常建立有多个长连接),每个连接只能最多跑 100 次请求,意味着平均每秒钟就会有 100 个长连接因此被 nginx 关闭。同样意味着为了保持 QPS,客户端不得不每秒中重新新建 100 个连接。因此,如果用netstat命令看客户端机器,就会发现有大量的TIME_WAIT的socket连接 (即使此时keepalive已经在 Client 和 NGINX 之间生效)。
保持和Server的长连接
想让Nginx和Server之间维持长连接,最朴素的设置如下:
upstream配置
upstream中,有一个参数特别的重要,就是 keepalive 。 这个参数和之前http里面的 keepalive_timeout 不一样。这个参数的含义是,连接池里面最大的空闲连接数量。
不理解?没关系,我们来举个例子:
场景:
有一个HTTP服务,作为upstream服务器接收请求,响应时间为100毫秒。要求性能达到10000 QPS,我们需要在nginx与upstream服务器之间建立大概1000条HTTP请求。(1000/0.1s=10000)
最优情况:
假设请求非常的均匀平稳,每一个请求都是100ms,请求结束会被马上放入连接池并置为idle(空闲)状态。
我们以0.1s为单位:
1. 我们现在keepalive的值设置为10,每0.1s钟有1000个连接。
2. 第0.1s的时候,我们一共有1000个请求收到并释放。
3. 第0.2s的时候,我们又来了1000个请求,在0.2s结束的时候释放。
请求和应答都比较均匀,0.1s释放的连接正好够用,不需要建立新连接,且连接池中没有idle状态的连接。
第一种情况:
应答非常平稳,但是请求不平稳 的时候
1.第0.3s的时候,我们只有500个请求收到,有500个请求因为网络延迟等原因没有进来。这个时候,Nginx检测到连接池中有500个idle状态的连接,就直接关闭了(500-10)个连接。
2.第0.4s的时候,我们收到了1500个请求,但是现在池里面只有(500+10)个连接,所以Nginx不得不重新建立了(1500-510)个连接。如果在第4步的时候,没有关闭那490个连接的话,只需要重新建立500个连接。
第二种情况:
请求非常平稳,但是应答不平稳 的时候
1. 第0.3s的时候,我们一共有1500个请求收到。但是池里面只有1000个连接,这个时候,Nginx又创建了500个连接,一共1500个连接。
2.第0.3s的时候,第0.3s的连接全部被释放,我们收到了500个请求。 Nginx检测到池里面有1000个idle状态的连接,所以不得不释放了(1000-10)个连接。造成连接数量反复震荡的一个推手,就是这个keepalive 这个最大空闲连接数。上面的两种情况说的都是 keepalive设置的不合理导致Nginx有多次释放与创建连接的过程,造成资源浪费。
keepalive 这个参数设置一定要小心,尤其是对于 QPS 要求比较高或者网络环境不稳定的场景,一般根据 QPS 值和 平均响应时间能大致推算出需要的长连接数量。然后将keepalive设置为长连接数量的10%到30%。
location配置
HTTP 协议中对长连接的支持是从 1.1 版本之后才有的,因此最好通过proxy_http_version 指令设置为 1.1。HTTP1.0不支持keepalive特性,当没有使用HTTP1.1的时候,后端服务会返回101错误,然后断开连接。而“Connection” header 可以选择被清理,这样即便是 Client 和 Nginx 之间是短连接,Nginx 和 upstream 之间也是可以开启长连接的。
另外一种高级方式
http里面的map的作用是:让转发到代理服务器的 "Connection" 头字段的值,取决于客户端请求头的"Upgrade" 字段值。
如果$http_upgrade没有匹配,那 "Connection" 头字段的值会是upgrade。
如果$http_upgrade为空字符串的话,那 "Connection" 头字段的值会是 close。
【补充】
NGINX支持WebSocket。对于NGINX将升级请求从客户端发送到后台服务器,必须明确设置Upgrade和Connection标题。这也算是上面情况所非常常用的场景。HTTP的Upgrade协议头机制用于将连接从HTTP连接升级到WebSocket连接,Upgrade机制使用了Upgrade协议头和Connection协议头。为了让Nginx可以将来自客户端的Upgrade请求发送到后端服务器,Upgrade和Connection的头信息必须被显式的设置。
【注意】
在nginx的配置文件中,如果当前模块中没有proxy_set_header的设置,则会从上级别继承配置。继承顺序为:http, server, location。如果在下一层使用proxy_set_header修改了header的值,则所有的header值都可能会发生变化,之前继承的所有配置将会被丢弃。所以,尽量在同一个地方进行proxy_set_header,否则可能会有别的问题。
❸ 买了一台服务器,想请教下高人要怎么配置服务器的软件环境和组件!
1、比如web服务器、邮件服务器、数据库服务器、ftp服务器、虚拟主机管理系统,能够全部安装在一台服务器上吗?还是要多台服务器?
/主要看负载量,如果客户端不多,负载低,都做到一台服务器上是没有问题的。如果负载高,建议分别架设,做成服务器集群。
2、需要安装哪些服务器软件环境和组件?必须用正版吗?
你需要做什么应用,就安装相应的应用软件的服务器端。不一定用正版
3、如果有买了硬件防火墙,软件防火墙还需要吗?
当然有需要。建议还要安装杀毒软件,防病毒。
4、想把服务器拿来分割成虚拟主机出售,需要怎么做,要注意什么?
在web运行容器上设置
5、有5个公网ip,千兆出口带宽,够不够用呢?
够用了
6、asp和php能安装在一台服务器上吗?
可以,用windows
server2003,iis6.0,装上php的插件就可以了
天互数据
为您解答,
希望能帮到你
❹ 服务器的基本配置
企业往往在购买服务器时,面对一堆服务器配置参数无所适从,用户如何根据厂商提供的数据选择到合适的服务器呢?下面为大家列举出常见的配置数据:
1、双路等于双核吗
无论服务器的单路、双路、四路乃至八路,其中的“路”都是指服务器物理CPU的数量,也就是服务器主板上CPU插槽的数量。
双核处理器,是在一颗物理CPU内部封装了两个CPU核心,这样的好处在于能够让用户在成本增加不多的前提下,拥有更强劲的性能。而且能够比较显着的降低性能功耗比,这对企业用户节约使用成本也有积极的意义。
2、至强与奔腾的区别
(1)英特尔奔腾4处理器开始,便将奔腾4处理器归为个人处理器,用户不能以2颗奔腾4处理器来构架2路服务器系统,而开发出运算效能更高的至强处理器。至强处理器目前分为至强DP和至强MP。
(2)就是二级缓存不同。至强的二级缓存是1MB~16MB,P4的二级缓存是512KB~1MB,而二级缓存的容量也是决定服务器处理效能的重要因素。至强系列CPU多为604接口,而P4的CPU,多为478针或是775架构。
3、服务器的几种类型
按照外形结构划分,可分为塔式服务器、机架式服务器、刀片式服务器三种类型。
(1)塔式服务器
一般的塔式服务器机箱和我们常用的PC机箱差不多,而大型的塔式机箱就要粗大很多,总的来说外形尺寸没有固定标准。塔式服务器的功能、性能基本上能满足大部分企业用户的要求,其成本通常也比较低,因此拥有非常广泛的应用支持。
(2)机架式服务器
机架式服务器是由于满足企业的密集部署,形成的以19英寸机架作为标准宽度的服务器类型,高度则从1U到数U。将服务器放置到机架上,并不仅仅有利于日常的维护及管理,也可能避免意想不到的故障。放置服务器不占用过多空间,连接线等也能够整齐地收放到机架里,电源线和LAN线等全都能在机柜中布好线,可以减少堆积在地面上的连接线,从而防止脚踢掉电线等事故的发生。
(3)刀片式服务器
刀片服务器是一种高可用高密度的低成本服务器平台,是专门为特殊应用行业和高密度计算机环境设计的,其中每一块“刀片”实际上就是一块系统母板,类似于一个个独立的服务器。在这种模式下,每一个母板运行自己的系统,服务于指定的不同用户群,相互之间没有关联。不过可以使用系统软件将这些母板集合成一个服务器集群。在集群模式下,所有的母板可以连接起来提供高速的网络环境,可以共享资源,为相同的用户群服务。
4、“U”是什么
“U”在服务器领域中特指机架式服务器厚度。
之所以要规定服务器的尺寸,是为了使服务器保持适当的尺寸以便放在铁质或铝质机架上。机架上有固定服务器的螺孔,将它与服务器的螺孔对好,用螺丝加以固定。
❺ 服务器如何配置 需要怎么做
1、首先应该配置服务器的外部接口。你应该已经知道如何做到这一点,并且可能已经完成了。如果你不这样做,那么现在就这样做。
2、现在我们调出内部接口。根据我们选择的数字,服务器的内部接口是192.168.40.254。所以我们必须配置该接口。
3、设置路线。 我们现在可以与当地网络上的机器通信,但我们无法访问其他内部网络。这需要更多的代码行。
4、任何发往192.168.0.0网络的流量都应该输出eth1,并且它应该交给思科。我们的本地网络的流量仍然可以达到应有的位置,因为路由表按网络掩码的大小排序。如果我们在我们的网络中有其他内部网络,我们将为每个网络提供如上所述的线路。
5、现在我们可以访问我们可能需要的每台机器,我们需要编写允许或拒绝通过VPN服务器访问的防火墙过滤规则。
6、对于家庭用户来说,一切都可以在这里工作。但是对于远程办公室,我们需要做一些路由。首先,我们需要告诉主路由器或思科,远程办公室是VPN服务器的后面。因此,请指定Cisco上的路由,告知它将发往远程办公室的流量发送到VPN服务器。现在,我们必须告诉VPN服务器如何处理发往远程办公室的流量。
7、为此,我们在服务器上运行 route命令。唯一的问题是为了路线命令工作,链接必须是up,如果它关闭,路由将丢失。解决方案是在客户端连接时添加路由,或者更简单地,经常运行路由命令,因为运行它不是必要的问题。
❻ 配置服务器的方法步骤
客户端使用连接到与Internet相连的服务器。服务器应答验证客户端身份,并在客户端和内部网络之间传送数据。与拨号网络相比,是通过公用网络在客户端和服务器之间建立的一种逻辑连接。要进一步保证数据的安全性,必须对网络上传输的数据进行加密处理。下面就让我给大家说说怎么配置服务器吧。
配置服务器的方法
点击开始菜单,选择所有程序--管理工具---选择<路由和远程访问>。如图:
❼ 服务器要什么配置
好的服务器是没有配置上线的,需要根据自己需要,业务来,但是配置过低,稳定性等方面肯定不好。
一台效劳器,最重要的 CPU,内存,硬盘,显卡根本上可有可无(制图的除外)。
CPU 的选择,最好是专业的效劳器CPU,比方 INTEL 的 至强 系列,AMD 的 皓龙 系列。
内存 的选择,效劳器 的内存 都是 带ECC的,内存奇偶校验,频率比不上家用机,但是,数据不易出错和梗塞,当 大量 数据交流时,效果最为明显。
硬盘 的选择,同样,希捷和西部数据都有专业的效劳器硬盘。
其他的,包括 主板 电源 致使 机箱 都不是普通的东西。全是 当当 的货。当然,价钱也不菲。
3.不清楚自己的需求可以问服务器供应商说出自己的业务,多问几家。
❽ 服务器配置选择需要注意哪些方面
服务器配置选择需要注意的有:
1、可扩展性
服务器必须具有一定的“可扩展性”,这是因为企业网络不可能长久不变,特别是在当今信息时代。如果服务器没有一定的可扩展性,当用户一增多就不能胜任的话,一台价值几万,甚至几十万的服务器在短时间内就要遭到淘汰,这是任何企业都无法承受的。为了保持可扩展性,通常需要在服务器上具备一定的可扩展空间和冗余件(如磁盘阵列架位、PCI和内存条插槽位等)。
可扩展性具体体现在硬盘是否可扩充,CPU是否可升级或扩展,系统是否支持WindowsNT、Linux或UNIX等多种可选主流操作系统等方面,只有这样才能保持前期投资为后期充分利用。
2、易使用性
服务器的功能相对于PC机来说复杂许多,不仅指其硬件配置,更多的是指其软件系统配置。服务器要实现如此多的功能,没有全面的软件支持是无法想象的。但是软件系统一多,又可能造成服务器的使用性能下降,管理人员无法有效操纵。所以许多服务器厂商在进行服务器的设计时,除了在服务器的可用性、稳定性等方面要充分考虑外,还必须在服务器的易使用性方面下足功夫。
服务器的易使用性主要体现在服务器是不是容易操作,用户导航系统是不是完善,机箱设计是不是人性化,有没有关键恢复功能,是否有操作系统备份,以及有没有足够的培训支持等方面。
3、可用性
对于一台服务器而言,一个非常重要的方面就是它的“可用性”,即所选服务器能满足长期稳定工作的要求,不能经常出问题。其实就等同于Sun所提出的可靠性(Reliability)。
因为服务器所面对的是整个网络的用户,而不是单个用户,在大中型企业中,通常要求服务器是永不中断的。在一些特殊应用领域,即使没有用户使用,有些服务器也得不间断地工作,因为它必须持续地为用户提供连接服务,而不管是在上班,还是下班,也不管是工作日,还是休息、节假日。这就是要求服务器必须具备极高的稳定性的根本原因。
4、易管理性
在服务器的主要特性中,还有一个重要特性,那就是服务器的“易管理性”。服务器虽然在稳定性方面有足够保障,但也应有必要的避免出错的措施,以及时发现问题,而且出了故障也能及时得到维护。这不仅可减少服务器出错的机会,同时还可大大提高服务器维护的效率。其实也就是Sun提出的可服务性(Serviceability)。
服务器的易管理性还体现在服务器有没有智能管理系统,有没有自动报警功能,是不是有独立与系统的管理系统,有没有液晶监视器等方面。只有这样,管理员才能轻松管理,高效工作。

(8)长连接下服务器端需要配置什么扩展阅读:
服务器维护保养:
1、注重机房环境的建设
机房环境对服务器的正常运转有着重要的影响作用。因此,服务器维护和保养的首要环节就是做好机房环境建设。机房要保证充足的空间,用以安装和配置服务器的相关设备,机房的隔断,地板等要组好防静电等细节处理。机房的防火工作也很关键,要做好墙面和电缆等的防火处理。一旦遇到火情等,如何保障设备的安全,如何保障人员的有序撤离等都是机房建设中需要考虑的因素。机房的温度和湿度也应当操持在一定的范围,温度和湿度对于电子产品的正常工作有着非常大的影响作用。
2、做好硬件维护工作
服务器的硬件组成较为复杂,对于服务器硬件的维护应由专业人员进行。在维护和保养存储设备时,我们首先应当对其容量进行测试,看是否需要进行扩容等操作。存储容量一定要能满足任务的需求,并留有一定的冗余量。在拆卸和更新服务器设备时,务必让设备处于断电状态并进行接地处理。即便是更换最简单的部件,这些环节也不能省略。对于一些不熟悉的部件,要反复仔细的阅读说明书和参照文件,在没有十足把握的前提下切忌盲目拆解。要定期对服务器进行除尘处理。
3、维护好服务器软件
软件是服务器的重要组成部分,服务器的稳定高效运行离不开相应的软件。我们要定期对服务器的软件系统进行巡检,及时发现漏洞,及时安装官方给定的补丁程序。在扩展服务器数据库时,在条件允许的情况下,最好对原有数据进行备份,以免造成不必要的损失。
4、做好电力控制
没有稳定的电力保证,服务器就没有办法正常工作。电子控制是一个非常关键,但又非常容易被忽视的问题。在机房建设之初,我们就应当充分考虑到服务器的电力保障。要为机房设计和配置一套稳定,可靠的电力供应系统。这套系统还要有处置和应对突发事件的能力,例如,不可预知的停电、雷电等。
5、密码管理
服务器的密码管理是服务器防御能力的最关键组成部分。密码的管理和更换应当形成一套长效机制。我们要定期对服务器的密码进行更换,密码应有专人管理。选用的密码要有一定的专业性,一定的复杂度,最好是将数字和字母等结合起来,大小写也要融合进去。在日常的检查中,我们要做好登统计,关闭一些不太使用的端口。
❾ 服务器端 长连接 客户端要使用什么连接
我们有时候有这种需求,即我们的android客户端要始终保持与服务端的连接,当服务端有任务或消息发送到android客户端的时候就发送,没有任务或消息的时候不发送但要保持这个连接,一旦有任务则开发发送,而我们的android客户端则要保持一个时刻接收任务或消息的状态。。。这个时候我们通过socket来实现这种需求【当然你也可以采用http轮询的方式来不断的从客户端个请求服务端,这样做有一定的弊端】
实现原理:
1:android客户端通过service在后台通过servreScoket不断的accept,一旦有相应的socket到达,则启动一个线程去处理
2::在线程中处理完返回给我们android客户端的消息或任务之后,要将这种结果表现在ui上,这个步骤方法就比较多了,例如你可以发一个广播来通知ui,或者你可以通过一个static的handler来处理
❿ 如何实现android和服务器长连接
提出问题:这种功能必须涉及client(客户端)和server(服务器),所以到底client如何和server实现实时连接通讯?
分析问题:这种功能实际上就是数据同步,同时要考虑手机本身、电量、网络流量等等限制因素,所以通常在移动端上有一下两个解决方案:
1.一种是定时去server查询数据,通常是使用HTTP协议来访问web服务器,称Polling(轮询);
2.还有一种是移动端和服务器建立长连接,使用XMPP长连接,称Push(推送)。(按照本人理解:客户端的实现时:
while(true) {
request(timeout);
request(timeout);
}
客户端发出一个“长”请求,如果服务器发送消息或者时间out了,客户端就断开这个请求,再建立一个长请求
)
从耗费的电量、流量和数据延迟性各方面来说,Push有明显的优势。但是使用Push的缺点是:
对于客户端:实现和维护相对成本高,在移动无线网络下维护长连接,相对有一些技术上的开发难度。
对于服务器:如何实现多核并发,cpu作业调度,数量庞大的长连接并发维护等技术,仍存在开发难点。
在讲述Push方案的原理前,我们先了解一下移动无线网络的特点。
移动无线网络的特点:
因为 IP v4 的 IP 量有限,运营商分配给手机终端的 IP 是运营商内网的 IP,手机要连接 Internet,就需要通过运营商的网关做一个网络地址转换(Network Address Translation,NAT)。简单的说运营商的网关需要维护一个外网 IP、端口到内网 IP、端口的对应关系,以确保内网的手机可以跟 Internet 的服务器通讯
原理图如下:

GGSN(Gateway GPRS Support Node 网关GPRS支持结点)模块就实现了NAT功能。
因为大部分移动无线网络运营商都是为了减少网关的NAT映射表的负荷,所以如果发现链路中有一段时间没有数据通讯时,会删除其对应表,造成链路中断。(关于NAT的作用及其原理可以查看我的另一篇博文:关于使用UDP(TCP)跨局域网,NAT穿透的心得)
Push在Android平台上长连接的实现:
既然我们知道我们移动端要和Internet进行通信,必须通过运营商的网关,所以,为了不让NAT映射表失效,我们需要定时向Internet发送数据,因为只是为了不然NAT映射表失效,所以只需发送长度为0的数据即可。
这时候就要用到定时器,在android系统上,定时器通常有一下两种:
1.java.util.Timer
2.android.app.AlarmManager
分析:
Timer:可以按照计划或者时间周期来执行相关的任务。但是Timer需要用WakeLock来让CPU保持唤醒状态,才能保证任务的执行,这样子会消耗大量流量;当CPU处于休眠的时候,就不能唤醒执行任务,所以应用于移动端明显是不合适。
AlarmManager:AlarmManager类是属于android系统封装好来管理RTC模块的管理类。这里就涉及到RTC模块,要更好地了解两者的区别,就要明白两者真正的区别。
RTC(Real- Time Clock)实时闹钟在一个嵌入式系统中,通常采用RTC 来提供可靠的系统时间,包括时分秒和年月日等;而且要求在系统处于关机状态下它也能够正常工作(通常采用后备电池供电),它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的32.768KHz 晶体和电阻电容等。(如果对这方面感兴趣,可以自己查阅相关资料,这里就说个大概)
好了,回来正题。所以,AlarmManager又称全局定时闹钟。这意味着,当我用使用AlarmManager来定时执行任务,CPU可以正常地休眠,只有在执行任务是,才唤醒CPU,这个过程是很短时间的。
下面简单来说明其使用:
1.类似于Timer功能:
//获得闹钟管理器
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
//设置任务执行计划
am.setRepeating(AlarmManager.ELAPSED_REALTIME, firstTime, 5*1000, sender);//从firstTime才开始执行,每隔5秒再执行
2.实现全局定时功能:
//获得闹钟管理器
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
//设置任务执行计划
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 5*1000, sender);//从firstTime才开始执行,每隔5秒再执行
总结:在android客户端使用Push推送时,应该使用AlarmManager来实现心跳功能,使其真正实现长连接。
在服务器端的实现:
在服务器端,可以使用很多语言来实现,如C/C++,java,Erlang等等,如我们国内比较好的极光推送(C开发),openfire(java开发)等等。
最近我看了极光推送的介绍和原理,下面我就说说他们是遇到什么难题,然后使用什么技术或者方案来解决呢。
当有大量的手机终端需要与服务器维持长连接时,对服务器的设计会是一个很大的挑战。
假设一台服务器维护10万个长连接,当有1000万用户量时,需要有多达100台的服务器来维护这些用户的长连接,这里还不算用于做备份的服务器,这将会是一个巨大的成本问题。那就需要我们尽可能提高单台服务器接入用户的量,也就是业界已经讨论很久了的 C10K 问题。
C2000K
针对这个问题,他们专门成立了一个项目,命名为C2000K,顾名思义,他们的目标是单机维持200万个长连接。最终他们采用了多消息循环、异步非阻塞的模型,在一台双核、24G内存的服务器上,实现峰值维持超过300万个长连接。
最后总结:
因为我最近用java在做一个PC、服务器、android的即时通讯系统(说白了就是模仿QQ,后面希望有不同的功能)。我的原则是用别人的原理,自己来实现,这样才更好深入了解一些框架。所以,估计难点是在通讯开发和服务器上的开发,必须深刻了解多消息循环、异步非阻塞的模型。之后我会发表关于这方面的实现。
在现在的android平台上,已经不是android单机的世界了(我不是说做单机游戏没有前途)。现在都是依靠发展蓬勃的互联网来支撑整个IT体系,所以,要成为一个android应用开发高手,必须朝着android、硬件、云服务这一体系来发展。
