本发明属于网络聊天领域,具体涉及一种自适应房间人数的聊天室配置方法及聊天室系统。
背景技术:
随着互联网技术的发展,各类聊天室越来越火,如主播聊天室,实时在线人数可达到十万级,甚至百万级人数,而另外有一些聊天室;如实时对战聊天室,由于麦克风路数限制,因为太多人讲话,大家都会听不清,所以同时在线人数一般不会超过十人。对于如主播聊天室这类大房间聊天室,处理能力超过了单个服务器处理的极限,因此需要多个服务器进行处理,而对于实时对战聊天室这类小房间聊天室,一个服务器足以处理。
现有技术对聊天室服务器配置方案中,有的通过固定参数配置聊天室房间是大房间还是小房间,并选择相应的服务器为之服务,聊天室已对应好了服务器,对于小房间来说,为每个小房间配置一个服务器为之服务,数据信息只在一个服务器内进行处理,这种策略简单而又有效,尤其语音交互及时性较好;但对于大房间来说,在线人数非常少的情况下,则可能会造成服务器资源的浪费。
目前还有的聊天室采用开放式在线人数,为了能够满足数十万,甚至百万级的人数,需要配置多个服务器,但在实际使用过程中,每个聊天室的在线人数是不确定的,可能很多人,也可能几个人;如用户利用开放式的聊天室作实时对战时仅供几个人使用的聊天室,此种情况下,聊天的人可能被分配到不同的服务器,增加了服务器之间交互的步骤,导致服务器资源的浪费。
因而目前的聊天室需要优化服务器配置,以自适应聊天室人数。
技术实现要素:
有鉴于此,本发明的目的在于克服现有技术的不足,提供一种自适应房间人数的聊天室配置方法及聊天室系统,通过聊天服务器的优化配置以自适应聊天室的人数。
为实现以上目的,本发明采用如下技术方案:
一种自适应房间人数的聊天室配置方法,聊天室有进入请求时,获取所述聊天室的配置信息,所述聊天室的配置信息包括所述聊天室是否曾配置过聊天服务器,根据所述聊天室的配置信息,所述聊天室有进入请求时,若所述聊天室未曾配置过聊天服务器,则为所述聊天室配置一个新的聊天服务器,将进入请求分配到所述聊天室配置的聊天服务器,并更新所述聊天室的配置信息;若所述聊天室曾配置过聊天服务器,则将所述聊天室配置到曾配置过的聊天服务器,将进入请求分配到所述聊天室配置的聊天服务器。
进一步地,若所述聊天室未曾配置过聊天服务器,当所述聊天室的进入请求为并发进入请求时,为并发进入请求的所述聊天室配置一个新的聊天服务器。
进一步地,若所述聊天室曾配置过聊天服务器,所述聊天室有进入请求时,将所述聊天室配置到曾配置过的聊天服务器还包括:若所述聊天室曾配置过的所有聊天服务器中每个聊天服务器的在线人数都达到服务器上限人数,则为所述聊天室配置一个新的聊天服务器,并更新所述聊天室的配置信息。
进一步地,为所述聊天室配置一个新的聊天服务器时,获取可供配置的聊天服务器的在线人数,将在线人数最少的聊天服务器配置给所述聊天室,或者获取可供配置的聊天服务器的cpu占用率,将cpu占用率最低的聊天服务器配置给所述聊天室。
进一步地,将所述聊天室配置到曾配置过的聊天服务器后,若所述聊天室配置的聊天服务器有多个,所述聊天室有进入请求时,遍历获取每个聊天服务器的在线人数,将进入请求分配到在线人数最少的聊天服务器。
进一步地,将所述聊天室配置到曾配置过的聊天服务器后,若所述聊天室配置的聊天服务器有多个,所述聊天室有进入请求时,遍历获取每个聊天服务器的cpu占用率,将进入请求分配到cpu占用率最低的聊天服务器。
进一步地,将所述聊天室配置到曾配置过的聊天服务器后,若所述聊天室配置的聊天服务器有多个,所述聊天室有进入请求时,遍历获取所述聊天室分配在每个聊天服务器中的人数,将进入请求分配到所述聊天室分配人数最多的聊天服务器。
进一步地,将进入请求分配到所述聊天室配置的聊天服务器包括:设定所述聊天室的配置人数阈值,所述聊天室有进入请求时,获取所述聊天室的在线人数,所述聊天室在线人数少于所述聊天室配置人数阈值时的进入请求均被分配在同一个聊天服务器。
一种自适应房间人数的聊天室系统,包括重定向服务器、全局信息存储服务器、中转服务器以及多个聊天服务器;
其中,
所述聊天服务器配置给聊天室,用于处理用户聊天内容;
所述重定向服务器为请求进入的聊天室配置所述聊天服务器,并将进入请求分配到所述聊天服务器;
所述中转服务器,中转聊天室配置的多个所述聊天服务器之间的聊天内容;
所述全局信息存储服务器用于存储聊天室的配置信息和聊天服务器的在线人数。
进一步地,所述自适应房间人数的聊天室系统还包括配置服务器,所述配置服务器用于管理所述聊天服务器、所述重定向服务器、所述中转服务器以及所述全局信息存储服务器的配置。
本发明采用以上技术方案,至少具备以下有益效果:
本发明提供一种自适应房间人数的聊天室配置方法及聊天室系统,聊天室有进入请求时,根据聊天室的配置信息,确认聊天室是否曾配置过聊天服务器,然后根据配置信息为聊天室配置与之自适应匹配的聊天服务器,通过发明可实现聊天服务器与聊天室在线人数的以自适应匹配,优化聊天服务器配置,提高聊天服务器资源的利用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种自适应房间人数的聊天室系统的实施例一工作原理示意图;
图2为本发明一种自适应房间人数的聊天室系统的实施例二工作原理示意图。
图中,1-重定向服务器;2-全局信息存储服务器;3-聊天服务器;4-中转服务器;5-配置服务器。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
在本发明的一个实施例中,聊天室有进入请求时,获取所述聊天室的配置信息,所述聊天室的配置信息包括所述聊天室是否曾配置过聊天服务器,根据所述聊天室的配置信息,所述聊天室有进入请求时,若所述聊天室未曾配置过聊天服务器,则为所述聊天室配置一个新的聊天服务器,将进入请求分配到所述聊天室配置的聊天服务器,并更新所述聊天室的配置信息;若所述聊天室曾配置过聊天服务器,则将所述聊天室配置到曾配置过的聊天服务器,将进入请求分配到所述聊天室配置的聊天服务器。
该实施例是基于用户使用聊天室的用途习惯给出的自适应配置服务器方案,用户使用聊天室通常作单一用途,一般情况下聊天室在线人数变化较为稳定,因而可利用聊天室曾经配置过的聊天服务器实现聊天室自适应配置聊天室服务器,本发明中,为聊天室配置聊天服务器时,得到聊天室的配置信息,并根据配置信息中聊天室是否配置过聊天服务器,若曾配置过,则配置到曾配置过的聊天服务器,若未曾配置过,则配置新的聊天服务器,通过该方案,每个用户的聊天室在经过配置后,服务器得到每个用户聊天室曾经的配置信息,该配置信息可对用户的聊天室的下次配置形成预测性判断,能够实现聊天服务器与其聊天室的人数自适应匹配,优化聊天服务器配置,提高聊天服务器资源的利用。同时所述聊天室未曾配置过聊天服务器的情况下,为所述聊天室配置一个新的聊天服务器,在聊天室初期在线人数较少的情况下,单一的聊天服务器足够实现为之服务,通过本实施例方案可实现聊天服务器资源的合理应用。
在所述聊天室未曾配置过聊天服务器的情况下,在实际执行过程中,可能会出现有多个用户同时请求进入同一个聊天室的现象,即为聊天室的并发进入请求,对于发生并发请求的情况,为了防止聊天的人可能被分配到不同的服务器,增加了服务器之间交互的步骤,导致服务器资源的浪费。对此本发明给出以下一种优选的实施例方案,具体为:
若所述聊天室未曾配置过聊天服务器,当所述聊天室的进入请求为并发进入请求时,为并发进入请求的所述聊天室配置一个新的聊天服务器。
通过该方案每个未配置有聊天服务器的聊天室在首次配置时,被配置一个单一的聊天服务器,解决了多个用户同时请求进入时可能被分配到不同的聊天服务器的问题。
对于未曾配置过聊天服务器的所述聊天室,经过首次配置后,就变成了曾配置过聊天服务器状态,对于曾配置过聊天服务器的所述聊天室,再次配置时,可能发生曾经配置的聊天服务器在线人数全都满的情况,基于此,本发明还给出:
若所述聊天室曾配置过聊天服务器,所述聊天室有进入请求时,将所述聊天室配置到曾配置过的聊天服务器还包括:若所述聊天室曾配置过的所有聊天服务器中每个聊天服务器的在线人数都达到服务器上限人数,则为所述聊天室配置一个新的聊天服务器,并更新所述聊天室的配置信息。
该方案中,在曾配置过的所有聊天服务器都人满时,为所述聊天室重新配置一个新的聊天服务器,并将新配置的聊天服务器更新到所述聊天室的配置信息中。
在为所述聊天室配置一个新的聊天服务器时,该新的聊天室可以是任意一个可使用的聊天服务器,但是从实现聊天室良好的体验效果方面出发,就需要对配置方案进行优化,对此本发明给出以下优选的配置新聊天服务器的方案,具体为:
为所述聊天室配置一个新的聊天服务器时,获取可供配置的聊天服务器的在线人数,将在线人数最少的聊天服务器配置给所述聊天室,或者获取可供配置的聊天服务器的cpu占用率,将cpu占用率最低的聊天服务器配置给所述聊天室。
通过该方案,在可供配置的聊天服务器中,从在线人数或cpu占用率方面出发,将性能最优的聊天服务器分配给聊天室,以实现配置的优化,聊天服务器资源的合理应用。
在聊天室配置好聊天服务器同时,进入请求也会分配到聊天服务器,对于聊天室与聊天服务器之间为一对一的配置情况,如聊天室之前若未配置过聊天服务器,那么新配置一个聊天服务器后就会形成聊天室与聊天服务器之间一对一的配置情况,又如聊天室虽然配置过聊天服务器,但仅配置过一个聊天服务器,这种情况下也会出现聊天室与聊天服务器之间一对一的配置情况。聊天室与聊天服务器之间一对一的配置情况下,进入请求就直接分配给聊天服务器。
对于聊天室曾经配置过多个聊天服务器,进入请求会分配到多个聊天服务器中的一个,简单方案是随机分配给其中的任一个,但该方案并非是较优方案,带有性能方面的不确定性,对此本发明给出以下几种优选的实施例:
作为一种优选的实施例,将所述聊天室配置到曾配置过的聊天服务器后,若所述聊天室配置的聊天服务器有多个,所述聊天室有进入请求时,遍历获取每个聊天服务器的在线人数,将进入请求分配到在线人数最少的聊天服务器。
该实施例是从服务器本身的性能方面考虑,通过服务器在线人数进行配置优化,以实现聊天服务器资源的合理应用。
作为一种优选的实施例,将所述聊天室配置到曾配置过的聊天服务器后,若所述聊天室配置的聊天服务器有多个,所述聊天室有进入请求时,遍历获取每个聊天服务器的cpu占用率,将进入请求分配到cpu占用率最低的聊天服务器。
该实施例是从服务器本身的性能方面考虑,通过cpu占用率进行配置优化,以实现聊天服务器资源的合理应用。
上述两种实施例从服务器本身的性能方面实现配置优化,但是在信息交互方面,所有信息在一个服务器内进行交互也是一种非常好的配置方案。
对此作为一种优选的实施例,将所述聊天室配置到曾配置过的聊天服务器后,若所述聊天室配置的聊天服务器有多个,所述聊天室有进入请求时,遍历获取所述聊天室分配在每个聊天服务器中的人数,将进入请求分配到所述聊天室分配人数最多的聊天服务器。
该实施例情况下,进入请求优先分配给所述聊天室分配人数最多的聊天服务器,对于聊天室分配人数最多的聊天服务器,由于人数最多,在同一聊天服务器内的信息交互几率也就最高,实际操作过程中,聊天室有请求进入,也会有退出,如聊天服务器在满员的情况下,若有一个退出,那么后面的请求进入分配到该聊天服务器的几率非常大。
对于开放式在线人数的聊天室,在其使用时,根据用户自己的使用目的,可以仅作为为少数几个人实时聊天用途,如多对多对战游戏中,对战一方的人员间使用,为了防止人数较少时的进入请求被分配到不同的聊天服务器而浪费聊天服务器资源,本发明给出以下一种改进方案:
将进入请求分配到所述聊天室配置的聊天服务器包括:设定所述聊天室的配置人数阈值,所述聊天室有进入请求时,获取所述聊天室的在线人数,所述聊天室在线人数少于所述聊天室配置人数阈值时的进入请求均被分配在同一个聊天服务器。
通过该方案,设定所述聊天室的配置人数阈值,该配置人数阈值可根据用户具体需要设定,如设定为十人,当请求进入的人数在十人以内时,将这十个人均分配到同一个聊天服务器。可避免人数较少时的进入请求可能出现的分散配置,如有一个聊天服务器可供分配的人数少于十人时,就可能出现配置到两个聊天服务器的情况。
对于上述各个方案,本发明还提供能实现上述各方案的自适应房间人数的聊天室系统,如图1所示,具体为:
一种自适应房间人数的聊天室系统,包括重定向服务器1、全局信息存储服务器2、中转服务器3以及多个聊天服务器4;
其中,
所述聊天服务器4配置给聊天室,用于处理用户聊天内容;
所述重定向服务器1为请求进入的聊天室配置所述聊天服务器4,并将进入请求分配到所述聊天服务器4;
所述中转服务器3,中转聊天室配置的多个所述聊天服务器4之间的聊天内容;
所述全局信息存储服务器2用于存储聊天室的配置信息和聊天服务器4的在线人数。
本发明中,对于所述聊天服务器4、所述重定向服务器1、所述中转服务器3以及所述全局信息存储服务器2的软硬配置管理,本发明还提供专门的配置管理方案,以进一步提高本发明整体性能,如图2所示,具体为:
所述自适应房间人数的聊天室系统还包括配置服务器5,所述配置服务器5用于管理所述聊天服务器4、所述重定向服务器1、所述中转服务器3以及所述全局信息存储服务器2的配置。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。