CN102594728A - 一种分布式即时通讯方法及系统 - Google Patents
一种分布式即时通讯方法及系统 Download PDFInfo
- Publication number
- CN102594728A CN102594728A CN2012100279580A CN201210027958A CN102594728A CN 102594728 A CN102594728 A CN 102594728A CN 2012100279580 A CN2012100279580 A CN 2012100279580A CN 201210027958 A CN201210027958 A CN 201210027958A CN 102594728 A CN102594728 A CN 102594728A
- Authority
- CN
- China
- Prior art keywords
- client
- server
- connection pool
- operation requests
- maximum
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供一种分布式即时通讯方法及系统。上述通讯方法包括以下步骤:客户端建立连接池,并初始化连接池中连接的最小值和最大值;客户端有操作请求时,从连接池获取连接以执行操作请求;控制装置定时统计每个客户端单位时间操作请求数量;服务器根据控制装置统计的所有客户端最近的单位时间操作请求数量周期地重新设置客户端的连接池中连接的最小值及最大值;服务器根据重新设置的客户端的连接池中连接的最小值及最大值调整连接池中连接的实际值。
Description
技术领域
本发明属于网络通讯领域,尤其涉及一种分布式即时通讯方法及系统。
背景技术
目前,在分布式即时通讯系统中,客户端需要频繁地和服务器进行通信,例如,用户通过客户端进行信息查询、通知在线好友等。当即时通讯系统进行频繁交互时,会造成客户端与服务器通信效率降低,产生时间延迟现象。严重时,甚至会出现处理消息超时的错误,从而导致业务处理失败,甚至导致系统崩溃。
发明内容
本发明提供一种分布式即时通讯方法及系统,以解决上述问题。
本发明提供一种分布式即时通讯方法。上述方法包括以下步骤:客户端建立连接池,并初始化连接池中连接的最小值和最大值;客户端有操作请求时,从连接池获取连接以执行操作请求;控制装置定时统计每个客户端单位时间操作请求数量;服务器根据控制装置统计的所有客户端最近的单位时间操作请求数量周期地重新设置客户端的连接池中连接的最小值及最大值;服务器根据重新设置的客户端的连接池中连接的最小值及最大值调整连接池中连接的实际值。
本发明还提供一种分布式即时通讯系统,包括至少一个客户端、控制装置以及服务器。客户端分别连接服务器及控制装置,控制装置连接服务器。其中,客户端用于建立连接池,并初始化连接池中连接的最小值和最大值。客户端有操作请求时,从连接池获取连接以执行操作请求。控制装置用于定时统计每个客户端单位时间操作请求数量。服务器用于根据控制装置统计的所有客户端最近的单位时间操作请求数量周期地重新设置客户端的连接池中连接的最小值及最大值。服务器用于根据重新设置的客户端的连接池的连接的最小值及最大值调整连接池中连接的实际值。
相较于先前技术,根据本发明提供的分布式即时通讯方法及系统,控制装置定时统计每个客户端单位时间操作请求数量,服务器周期地根据所有客户端最近的单位时间操作请求数量重新设置客户端的连接池中连接的最小值及最大值,且服务器根据重新设置的连接池中连接的最小值及最大值调整连接池中连接的实际值。如此,实现对连接池中连接的最大值及最小值的动态调整,从而调整实际值以使其更合理。此外,还提高了分布式即时通讯系统的吞吐量,亦提高了通信效率,使得通信更即时、流畅。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1所示为根据本发明的较佳实施例提供的分布式即时通讯方法的流程图;
图2所示为根据本发明的较佳实施例提供的分布式即时通讯系统的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为根据本发明的较佳实施例提供的分布式即时通讯方法的流程图。如图1所示,本发明的较佳实施例提供的分布式即时通讯方法包括步骤101~105。
于步骤101,客户端建立连接池,并初始化所述连接池中连接的最小值和最大值。具体而言,在客户端建立一个缓存区,存放访问服务器的连接。于此,将所述存放连接的缓存称为连接池。此外,连接池初始化连接数目的最小值及最大值。例如,客户端A的连接池中连接的最小值可初始化为20,最大值可初始化为100。其中,每个客户端的连接池中连接的最小值可初始化为相同的值,最大值亦可初始化为相同的值。然而,本发明对此不作任何限定。于实际应用中,不同客户端的连接池中连接的最小值亦可设置为不同,最大值亦可设置为不同。
于步骤102,客户端有操作请求时,从所述连接池获取连接以执行所述操作请求。
于步骤103,控制装置定时统计每个客户端单位时间操作请求数量。
于步骤104,服务器根据控制装置统计的所有客户端最近的单位时间操作请求数量周期地重新设置客户端的连接池的连接的最小值及最大值。
具体而言,控制装置包括第一定时器,服务器包括第二定时器。控制装置通过第一定时器定时统计每个客户端单位时间操作请求数量。服务器通过第二定时器获取所有客户端最近的单位时间操作请求数量。
以下首先说明连接池中连接的最大值的调整方式。
于本实施例中,服务器定时计算所述连接池的连接的最大值,且所述最大值等于所述客户端的最近的单位时间操作请求数量占所有客户端对应的最近的单位时间操作请求数量的比重与所述服务器允许的最大连接数的乘积。此外,所述服务器取一个周期内计算得到的连接池中连接的所有最大值的平均值,并按照所述平均值重新设置所述连接池中连接的最大值。于此,以1小时为单位时间。然而,本发明并不限定于此。
以下表为例,其中以客户端A及客户端B举例说明。
如上表所示,第一定时器的定时时间例如为0.6小时,第二定时器的定时时间例如为2小时,则服务器每两个小时进行一次最大值的统计计算。于此,服务器允许的最大连接数为500。于第一次统计时,根据客户端A及客户端B最近1次的单位时间操作请求数量,可计算获得客户端A的连接池中连接的最大值=80/(80+300)*500=105。第二次及第三次的统计方式同第一次统计方式。于此,以一个周期为6个小时为例,则一个周期后获得的最大值为三次统计获得的最大值的平均值。于此,一个周期后,客户端A的连接池中连接的最大值重新设置为116;客户端B的连接池中连接的最大值重新设置为383。需注意的是,于上述过程中计算获得的值若为非整数,则向下取整。
接着说明连接池中连接的最小值的调整方式。
于本实施例中,服务器定时计算所述连接池中的连接的最小值,且所述最小值等于所述客户端的最近三次的单位时间操作请求数量的最小值占所有客户端对应的单位时间操作请求数量的比重与所述服务器允许的最大连接的乘积的百分之二十。此外,所述服务器取一个周期内计算得到的连接池中连接的所有最小值的平均值,并按照所述平均值重新设置所述连接池中连接的最小值。
以下表为例,其中以客户端A及客户端B举例说明。
如上表所示,第一定时器的定时时间例如为0.6小时,第二定时器的定时时间例如为2小时,则服务器每两个小时进行一次最小值的统计计算。于此,服务器允许的最大连接数为500。于第一次统计时,根据客户端A及客户端B最近三次的单位时间操作请求数量中的最小值,可计算获得客户端A的连接池中连接的最小值=60/(60+200)*500*20%=23。第二次及第三次统计方式同第一次统计方式。于此,以一个周期为6个小时为例,则一个周期后获得的最小值为三次统计获得的最小值的平均值。于此,一个周期后,客户端A的连接池中连接的最小值重新设置为19;客户端B的连接池中连接的最小值重新设置为79。需注意的是,于上述过程中计算获得的值若为非整数,则向下取整。
于本实施例中,本发明并不限定第二定时器的定时时间以及周期设定,可根据实际需要进行设定。此外,本发明统计的依据也不限定客户端最近的单位时间操作请求数量的次数。
于步骤105,服务器根据重新设置的客户端的连接池的连接的最小值及最大值调整所述连接池中连接的实际值。具体而言,于一个周期调整连接池的最小值及最大值之后,若连接池中连接的实际值大于最大值,则释放连接池中多余的连接至连接数目为最大值;若连接池中连接的实际值小于最小值,则在连接池中创建新连接至连接数目为最小值。如此,根据最大值及最小值调整实际值,从而确保实际值的合理性。
图2所示为根据本发明的较佳实施例提供的分布式即时通讯系统的示意图。如图2所示,本发明的较佳实施例提供的分布式即时通讯系统包括至少一个客户端、控制装置21以及服务器20。于此,以两个客户端10~11为例进行说明。然而,本发明并不限定客户端的数目。客户端10~11分别连接服务器20以及控制装置21,控制装置21连接服务器20。
于本实施例中,控制装置21包括第一定时器211,服务器20包括第二定时器201。控制装置21通过第一定时器211定时统计每个客户端的单位时间操作请求数量,服务器20通过第二定时器201定时从控制装置21获取所有客户端10~11最近的单位时间操作请求数量。其中,客户端10~11分别用于建立连接池,并初始化所述连接池中连接的最小值和最大值。以客户端10为例,客户端10有操作请求时,从连接池获取连接以执行所述操作请求。控制装置21用于定时统计每个客户端单位时间操作请求数量。服务器20用于根据控制装置21统计的所有客户端10~11最近的单位时间操作请求数量周期地重新设置客户端10~11的连接池中连接的最小值及最大值。服务器20用于根据重新设置的客户端的连接池中连接的最小值及最大值调整所述连接池中连接的实际值。关于本实施例提供的分布式即时通讯系统的操作过程同上述方法所述,故于此不再赘述。
综上所述,根据本发明较佳实施例提供的分布式即时通讯方法及系统,控制装置定时统计每个客户端单位时间操作请求数量,服务器周期地根据所有客户端最近的单位时间操作请求数量重新设置客户端的连接池的连接的最小值及最大值,且服务器根据重新设置的连接池的最小值及最大值调整连接池中连接的实际值。如此,实现对连接池中连接的最大值及最小值的动态调整,从而调整实际值以使其更合理。此外,还提高了分布式即时通讯系统的吞吐量,亦提高了通信效率,使得通信更即时、流畅。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种分布式即时通讯方法,其特征在于,包括以下步骤:
客户端建立连接池,并初始化所述连接池中连接的最小值和最大值;
所述客户端有操作请求时,从所述连接池获取连接以执行所述操作请求;
控制装置定时统计每个客户端单位时间操作请求数量;
服务器根据控制装置统计的所有客户端最近的单位时间操作请求数量周期地重新设置客户端的连接池中连接的最小值及最大值;
所述服务器根据重新设置的客户端的连接池中连接的最小值及最大值调整所述连接池中连接的实际值。
2.根据权利要求1所述的分布式即时通讯方法,其特征在于,所述控制装置包括第一定时器,所述服务器包括第二定时器,所述控制装置通过所述第一定时器定时统计每个客户端的单位时间操作请求数量,所述服务器通过所述第二定时器获取所有客户端最近的单位时间操作请求数量。
3.根据权利要求1所述的分布式即时通讯方法,其特征在于,所述服务器定时计算所述连接池中连接的最大值,且所述最大值等于所述客户端的最近的单位时间操作请求数量占所有客户端的对应的最近的单位时间操作请求数量的比重与所述服务器允许的最大连接数的乘积。
4.根据权利要求3所述的分布式即时通讯方法,其特征在于,所述服务器取一个周期内计算得到的连接池中连接的所有最大值的平均值,并按照所述平均值重新设置所述连接池中连接的最大值。
5.根据权利要求1所述的分布式即时通讯方法,其特征在于,所述服务器定时计算所述连接池中连接的最小值,且所述最小值等于所述客户端的最近三次的单位时间操作请求数量的最小值占所有客户端对应的单位时间操作请求数量的比重与所述服务器允许的最大连接的乘积的百分之二十。
6.根据权利要求5所述的分布式即时通讯方法,其特征在于,所述服务器取一个周期内计算得到的连接池中连接的所有最小值的平均值,并按照所述平均值重新设置所述连接池中连接的最小值。
7.一种分布式即时通讯系统,其特征在于,包括至少一个客户端、控制装置以及服务器,所述客户端分别连接所述服务器以及所述控制装置,所述控制装置连接所述服务器,
其中,客户端用于建立连接池,并初始化所述连接池中连接的最小值和最大值,
所述客户端有操作请求时,从所述连接池获取连接以执行所述操作请求,
所述控制装置用于定时统计每个客户端单位时间操作请求数量,
所述服务器用于根据所述控制装置统计的所有客户端最近的单位时间操作请求数量周期地重新设置客户端的连接池中连接的最小值及最大值,
所述服务器用于根据重新设置的客户端的连接池的连接的最小值及最大值调整所述连接池中连接的实际值。
8.根据权利要求7所述的分布式即时通讯系统,其特征在于,所述控制装置包括第一定时器,所述服务器包括第二定时器,所述控制装置通过所述第一定时器定时统计每个客户端的单位时间操作请求数量,所述服务器通过所述第二定时器获取所有客户端最近的单位时间操作请求数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100279580A CN102594728A (zh) | 2012-02-09 | 2012-02-09 | 一种分布式即时通讯方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100279580A CN102594728A (zh) | 2012-02-09 | 2012-02-09 | 一种分布式即时通讯方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102594728A true CN102594728A (zh) | 2012-07-18 |
Family
ID=46482943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100279580A Pending CN102594728A (zh) | 2012-02-09 | 2012-02-09 | 一种分布式即时通讯方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102594728A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250500A (zh) * | 2016-07-29 | 2016-12-21 | 广州唯品会信息科技有限公司 | 数据库连接池的动态管理方法和系统 |
CN109062707A (zh) * | 2018-06-29 | 2018-12-21 | Oppo(重庆)智能科技有限公司 | 电子装置及其限制进程间通信的方法、存储介质 |
CN112181652A (zh) * | 2020-09-25 | 2021-01-05 | 北京天融信网络安全技术有限公司 | 一种调整连接池容量的方法、装置、存储介质和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030135542A1 (en) * | 2001-12-10 | 2003-07-17 | International Business Machines Corporation | Message queuing method, system, and program product with reusable pooling component |
US20040221031A1 (en) * | 2003-04-29 | 2004-11-04 | Oracle International Corporation | Method and apparatus using connection pools in communication networks |
US20050262183A1 (en) * | 2003-08-14 | 2005-11-24 | Oracle International Corporation | Connection pool use of runtime load balancing service performance advisories |
CN1758606A (zh) * | 2004-10-08 | 2006-04-12 | 国际商业机器公司 | 用于自主管理连接池的方法和设备 |
CN101091164A (zh) * | 2004-05-20 | 2007-12-19 | Bea系统公司 | 用于具有自调整线程模型的应用服务器的系统和方法 |
CN101840352A (zh) * | 2010-04-29 | 2010-09-22 | 中兴通讯股份有限公司 | 一种数据库连接池的监控方法及装置 |
CN102594727A (zh) * | 2012-02-07 | 2012-07-18 | 苏州阔地网络科技有限公司 | 一种分布式即时通讯系统及其通讯方法 |
-
2012
- 2012-02-09 CN CN2012100279580A patent/CN102594728A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030135542A1 (en) * | 2001-12-10 | 2003-07-17 | International Business Machines Corporation | Message queuing method, system, and program product with reusable pooling component |
US20040221031A1 (en) * | 2003-04-29 | 2004-11-04 | Oracle International Corporation | Method and apparatus using connection pools in communication networks |
US20050262183A1 (en) * | 2003-08-14 | 2005-11-24 | Oracle International Corporation | Connection pool use of runtime load balancing service performance advisories |
CN101091164A (zh) * | 2004-05-20 | 2007-12-19 | Bea系统公司 | 用于具有自调整线程模型的应用服务器的系统和方法 |
CN1758606A (zh) * | 2004-10-08 | 2006-04-12 | 国际商业机器公司 | 用于自主管理连接池的方法和设备 |
CN101840352A (zh) * | 2010-04-29 | 2010-09-22 | 中兴通讯股份有限公司 | 一种数据库连接池的监控方法及装置 |
CN102594727A (zh) * | 2012-02-07 | 2012-07-18 | 苏州阔地网络科技有限公司 | 一种分布式即时通讯系统及其通讯方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250500A (zh) * | 2016-07-29 | 2016-12-21 | 广州唯品会信息科技有限公司 | 数据库连接池的动态管理方法和系统 |
CN109062707A (zh) * | 2018-06-29 | 2018-12-21 | Oppo(重庆)智能科技有限公司 | 电子装置及其限制进程间通信的方法、存储介质 |
CN109062707B (zh) * | 2018-06-29 | 2020-12-25 | Oppo(重庆)智能科技有限公司 | 电子装置及其限制进程间通信的方法、存储介质 |
CN112181652A (zh) * | 2020-09-25 | 2021-01-05 | 北京天融信网络安全技术有限公司 | 一种调整连接池容量的方法、装置、存储介质和电子设备 |
CN112181652B (zh) * | 2020-09-25 | 2023-11-28 | 北京天融信网络安全技术有限公司 | 一种调整连接池容量的方法、装置、存储介质和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102594727A (zh) | 一种分布式即时通讯系统及其通讯方法 | |
CN109818993B (zh) | 一种高效的区块链共识与交换系统 | |
CN101252602B (zh) | 文件分发及下载的方法和系统 | |
CN106899857B (zh) | 服务器负载调节方法、装置及服务器 | |
CN102791032A (zh) | 网络带宽分配方法及终端 | |
CN108023883B (zh) | 一种设备授权管理方法及装置 | |
CN103957251A (zh) | 一种实现服务器负载均衡的方法及系统 | |
CN109933431B (zh) | 一种智能的客户端负载均衡方法及系统 | |
CN102594728A (zh) | 一种分布式即时通讯方法及系统 | |
CN104320272A (zh) | 一种传递设备信息的方法和网络设备 | |
CN101977116A (zh) | 流量计费的方法及客户端 | |
CN103870979A (zh) | 一种信息交互方法、装置、服务器及终端 | |
CN105049531A (zh) | 一种消息推送系统及方法 | |
CN104320354A (zh) | 一种数据的处理方法及装置 | |
CN104092627A (zh) | 带宽调整方法及装置 | |
CN110177056A (zh) | 一种自动适应的带宽控制方法 | |
CN105591790A (zh) | 数据通信连接池管理装置 | |
CN202455381U (zh) | 一种分布式即时通讯系统 | |
CN103095604A (zh) | 识别家庭网络具体应用的系统及方法 | |
CN112866985A (zh) | 流量控制方法、资源下载方法、装置、设备和存储介质 | |
CN105391758B (zh) | 一种局域网中资源分配的方法和装置 | |
CN104766010A (zh) | 一种解决杀毒软件扫描风暴的方法 | |
CN101695104A (zh) | 一种数字电视终端请求服务器的方法及相关设备 | |
CN103974224A (zh) | 一种信用控制的方法和设备 | |
CN104488243A (zh) | 对服务器中的变量的写入访问 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120718 |