CN102594727A - 一种分布式即时通讯系统及其通讯方法 - Google Patents
一种分布式即时通讯系统及其通讯方法 Download PDFInfo
- Publication number
- CN102594727A CN102594727A CN2012100256466A CN201210025646A CN102594727A CN 102594727 A CN102594727 A CN 102594727A CN 2012100256466 A CN2012100256466 A CN 2012100256466A CN 201210025646 A CN201210025646 A CN 201210025646A CN 102594727 A CN102594727 A CN 102594727A
- Authority
- CN
- China
- Prior art keywords
- client
- server
- timer
- operation requests
- connection pool
- 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所示为根据本发明的第一较佳实施例提供的分布式即时通讯系统的示意图;
图3所示为根据本发明的第二较佳实施例提供的分布式即时通讯系统的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为根据本发明的较佳实施例提供的分布式即时通讯系统的通讯方法的流程图。如图1所示,本发明的较佳实施例提供的分布式即时通讯系统的通讯方法包括步骤101~104。
于步骤101,客户端建立连接池,并初始化所述连接池中连接的最小值和最大值。具体而言,在客户端建立一个缓存区,存放访问服务器的连接。于此,将所述存放连接的缓存称为连接池。此外,连接池初始化连接数目的最小值及最大值。例如,客户端A的连接池中连接的最小值可初始化为20,最大值可初始化为100。其中,每个客户端的连接池中连接的最小值可初始化为相同的值,最大值亦可初始化为相同的值。然而,本发明对此不作任何限定。于实际应用中,不同客户端的连接池中连接的最小值亦可设置为不同,最大值亦可设置为不同。
于步骤102,客户端有操作请求时,从所述连接池获取连接以执行所述操作请求。
于步骤103,服务器周期地根据所有客户端最近的单位时间操作请求数量重新设置客户端的连接池的连接的最小值及最大值。
于一较佳实施例中,每个客户端包括第一定时器,服务器包括第二定时器。客户端通过第一定时器定时统计单位时间操作请求数量。服务器通过第二定时器获取所有客户端最近的单位时间操作请求数量。
以下首先说明连接池中连接的最大值的调整方式。
于本实施例中,服务器定时计算所述连接池的连接的最大值,且所述最大值等于所述客户端的最近的单位时间操作请求数量占所有客户端对应的最近的单位时间操作请求数量的比重与所述服务器允许的最大连接数的乘积。此外,所述服务器取一个周期内计算得到的连接池中连接的所有最大值的平均值,并按照所述平均值重新设置所述连接池中连接的最大值。于此,以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。需注意的是,于上述过程中计算获得的值若为非整数,则向下取整。
于本实施例中,本发明并不限定第二定时器的定时时间以及周期设定,可根据实际需要进行设定。此外,本发明统计的依据也不限定客户端最近的单位时间操作请求数量的次数。
于另一较佳实施例中,所述服务器包括第一定时器以及第二定时器,所述第一定时器连接所述第二定时器。所述服务器通过所述第一定时器定时统计对应客户端的单位时间操作请求数量,所述服务器通过所述第二定时器获取所有客户端最近的单位时间操作请求数量。关于本实施例中最大值及最小值的具体调整方式同上所述,故于此不再赘述。
于步骤104,服务器根据重新设置的客户端的连接池的连接的最小值及最大值调整所述连接池中连接的实际值。具体而言,于一个周期调整连接池的最小值及最大值之后,若连接池中连接的实际值大于最大值,则释放连接池中多余的连接至连接数目为最大值;若连接池中连接的实际值小于最小值,则在连接池中创建新连接至连接数目为最小值。如此,根据最大值及最小值调整实际值,从而确保实际值的合理性。
图2所示为根据本发明的第一较佳实施例提供的分布式即时通讯系统的示意图。如图2所示,本发明的第一较佳实施例提供的分布式即时通讯系统包括至少一个客户端以及服务器20。于此,以三个客户端10~12为例进行说明。然而,本发明并不限定客户端的数目。客户端10~12分别连接服务器20。
于本实施例中,服务器20包括第一定时器201以及第二定时器202,第一定时器201连接第二定时器202。服务器20通过第一定时器201定时统计对应客户端的单位时间操作请求数量,服务器20通过第二定时器202获取所有客户端10~12最近的单位时间操作请求数量。其中,客户端10~12分别用于建立连接池,并初始化所述连接池中连接的最小值和最大值。以客户端10为例,客户端10有操作请求时,从连接池获取连接以执行所述操作请求。服务器20用于周期地根据所有客户端10~12最近的单位时间操作请求数量重新设置客户端10~12的连接池中连接的最小值及最大值。服务器20用于根据重新设置的客户端的连接池中连接的最小值及最大值调整所述连接池中连接的实际值。关于本实施例提供的分布式即时通讯系统的操作过程同上述方法所述,故于此不再赘述。
图3所示为根据本发明的第二较佳实施例提供的分布式即时通讯系统的示意图。如图3所示,本发明的第二较佳实施例提供的分布式即时通讯系统包括至少一个客户端以及服务器40。于此,以三个客户端30~32为例进行说明。然而,本发明并不限定客户端的数目。客户端30~32分别连接服务器40。
于本实施例中,客户端30包括第一定时器301,客户端31包括第一定时器311,客户端32包括第一定时器321,服务器40包括第二定时器401。客户端30~32分别通过第一定时器301~321定时统计单位时间操作请求数量,服务器40通过第二定时器401获取所有客户端30~32最近的单位时间操作请求数量。其中,客户端30~32分别用于建立连接池,并初始化所述连接池中连接的最小值和最大值。以客户端30为例,客户端30有操作请求时,从所述连接池获取连接以执行所述操作请求。服务器40用于周期地根据所有客户端30~32最近的单位时间操作请求数量重新设置客户端30~32的连接池中连接的最小值及最大值。服务器40用于根据重新设置的客户端的连接池中连接的最小值及最大值调整所述连接池中连接的实际值。关于本实施例提供的分布式即时通讯系统的操作过程同上述方法所述,故于此不再赘述。
综上所述,根据本发明较佳实施例提供的分布式即时通讯系统及其通讯方法,服务器周期地根据所有客户端最近的单位时间操作请求数量重新设置客户端的连接池的连接的最小值及最大值,且服务器根据重新设置的连接池的最小值及最大值调整连接池中连接的实际值。如此,实现对连接池中连接的最大值及最小值的动态调整,从而调整实际值以使其更合理。此外,还提高了分布式即时通讯系统的吞吐量,亦提高了通信效率,使得通信更即时、流畅。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种分布式即时通讯系统的通讯方法,其特征在于,包括以下步骤:
客户端建立连接池,并初始化所述连接池中连接的最小值和最大值;
所述客户端有操作请求时,从所述连接池获取连接以执行所述操作请求;
服务器周期地根据所有客户端最近的单位时间操作请求数量重新设置客户端的连接池中连接的最小值及最大值;
所述服务器根据重新设置的客户端的连接池中连接的最小值及最大值调整所述连接池中连接的实际值。
2.根据权利要求1所述的分布式即时通讯系统的通讯方法,其特征在于,所述服务器包括第一定时器以及第二定时器,所述第一定时器连接所述第二定时器,所述服务器通过所述第一定时器定时统计对应客户端的单位时间操作请求数量,所述服务器通过所述第二定时器获取所有客户端最近的单位时间操作请求数量。
3.根据权利要求1所述的分布式即时通讯系统的通讯方法,其特征在于,每个客户端包括第一定时器,所述服务器包括第二定时器,所述客户端通过所述第一定时器定时统计单位时间操作请求数量,所述服务器通过所述第二定时器获取所有客户端最近的单位时间操作请求数量。
4.根据权利要求1所述的分布式即时通讯系统的通讯方法,其特征在于,所述服务器定时计算所述连接池中连接的最大值,且所述最大值等于所述客户端的最近的单位时间操作请求数量占所有客户端的对应的最近的单位时间操作请求数量的比重与所述服务器允许的最大连接数的乘积。
5.根据权利要求4所述的分布式即时通讯系统的通讯方法,其特征在于,所述服务器取一个周期内计算得到的连接池中连接的所有最大值的平均值,并按照所述平均值重新设置所述连接池中连接的最大值。
6.根据权利要求1所述的分布式即时通讯系统的通讯方法,其特征在于,所述服务器定时计算所述连接池中连接的最小值,且所述最小值等于所述客户端的最近三次的单位时间操作请求数量的最小值占所有客户端对应的单位时间操作请求数量的比重与所述服务器允许的最大连接的乘积的百分之二十。
7.根据权利要求6所述的分布式即时通讯系统的通讯方法,其特征在于,所述服务器取一个周期内计算得到的连接池中连接的所有最小值的平均值,并按照所述平均值重新设置所述连接池中连接的最小值。
8.一种分布式即时通讯系统,其特征在于,包括至少一个客户端以及服务器,所述客户端分别连接所述服务器,
其中,客户端用于建立连接池,并初始化所述连接池中连接的最小值和最大值,
所述客户端有操作请求时,从所述连接池获取连接以执行所述操作请求,
所述服务器用于周期地根据所有客户端最近的单位时间操作请求数量重新设置客户端的连接池中连接的最小值及最大值,
所述服务器用于根据重新设置的客户端的连接池的连接的最小值及最大值调整所述连接池中连接的实际值。
9.根据权利要求8所述的分布式即时通讯系统,其特征在于,所述服务器包括第一定时器以及第二定时器,所述第一定时器连接所述第二定时器,所述服务器通过所述第一定时器定时统计对应客户端的单位时间操作请求数量,所述服务器通过所述第二定时器获取所有客户端最近的单位时间操作请求数量。
10.根据权利要求8所述的分布式即时通讯系统,其特征在于,每个客户端包括第一定时器,所述服务器包括第二定时器,所述客户端通过所述第一定时器定时统计单位时间操作请求数量,所述服务器通过所述第二定时器获取所有客户端最近的单位时间操作请求数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100256466A CN102594727A (zh) | 2012-02-07 | 2012-02-07 | 一种分布式即时通讯系统及其通讯方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100256466A CN102594727A (zh) | 2012-02-07 | 2012-02-07 | 一种分布式即时通讯系统及其通讯方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102594727A true CN102594727A (zh) | 2012-07-18 |
Family
ID=46482942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100256466A Pending CN102594727A (zh) | 2012-02-07 | 2012-02-07 | 一种分布式即时通讯系统及其通讯方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102594727A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594728A (zh) * | 2012-02-09 | 2012-07-18 | 苏州阔地网络科技有限公司 | 一种分布式即时通讯方法及系统 |
CN103581313A (zh) * | 2013-10-29 | 2014-02-12 | 华为技术有限公司 | 一种处理设备与集群服务器建立连接的方法及处理设备 |
CN104954158A (zh) * | 2014-03-27 | 2015-09-30 | 深圳市金蝶友商电子商务服务有限公司 | 一种连接管理方法及连接池控制设备 |
CN105427057A (zh) * | 2015-12-22 | 2016-03-23 | 黑龙江盛世达仁科技开发有限责任公司 | 一种用于辅助节水增粮的系统及方法 |
CN105591790A (zh) * | 2014-12-30 | 2016-05-18 | 中国银联股份有限公司 | 数据通信连接池管理装置 |
CN106385459A (zh) * | 2016-10-20 | 2017-02-08 | 杭州迪普科技有限公司 | 一种连接请求报文的分配方法及装置 |
CN112885065A (zh) * | 2021-01-14 | 2021-06-01 | 武汉宏佳启元科技有限公司 | 一种数据传输处理方法 |
Citations (6)
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 | 中兴通讯股份有限公司 | 一种数据库连接池的监控方法及装置 |
-
2012
- 2012-02-07 CN CN2012100256466A patent/CN102594727A/zh active Pending
Patent Citations (6)
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 | 中兴通讯股份有限公司 | 一种数据库连接池的监控方法及装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594728A (zh) * | 2012-02-09 | 2012-07-18 | 苏州阔地网络科技有限公司 | 一种分布式即时通讯方法及系统 |
CN103581313A (zh) * | 2013-10-29 | 2014-02-12 | 华为技术有限公司 | 一种处理设备与集群服务器建立连接的方法及处理设备 |
CN103581313B (zh) * | 2013-10-29 | 2017-01-18 | 华为技术有限公司 | 一种处理设备与集群服务器建立连接的方法及处理设备 |
CN104954158A (zh) * | 2014-03-27 | 2015-09-30 | 深圳市金蝶友商电子商务服务有限公司 | 一种连接管理方法及连接池控制设备 |
CN104954158B (zh) * | 2014-03-27 | 2019-04-19 | 金蝶智慧科技(深圳)有限公司 | 一种连接管理方法及连接池控制设备 |
CN105591790A (zh) * | 2014-12-30 | 2016-05-18 | 中国银联股份有限公司 | 数据通信连接池管理装置 |
CN105591790B (zh) * | 2014-12-30 | 2019-05-10 | 中国银联股份有限公司 | 数据通信连接池管理装置 |
CN105427057A (zh) * | 2015-12-22 | 2016-03-23 | 黑龙江盛世达仁科技开发有限责任公司 | 一种用于辅助节水增粮的系统及方法 |
CN106385459A (zh) * | 2016-10-20 | 2017-02-08 | 杭州迪普科技有限公司 | 一种连接请求报文的分配方法及装置 |
CN106385459B (zh) * | 2016-10-20 | 2020-02-11 | 杭州迪普科技股份有限公司 | 一种连接请求报文的分配方法及装置 |
CN112885065A (zh) * | 2021-01-14 | 2021-06-01 | 武汉宏佳启元科技有限公司 | 一种数据传输处理方法 |
CN112885065B (zh) * | 2021-01-14 | 2023-05-23 | 武汉宏佳启元科技有限公司 | 一种数据传输处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102594727A (zh) | 一种分布式即时通讯系统及其通讯方法 | |
CN109818993B (zh) | 一种高效的区块链共识与交换系统 | |
CN101252602B (zh) | 文件分发及下载的方法和系统 | |
MX2014002956A (es) | Mercado digial para la distribucion a tiempo de datos de evento. | |
CN102791032A (zh) | 网络带宽分配方法及终端 | |
CN109933431B (zh) | 一种智能的客户端负载均衡方法及系统 | |
CN103957251A (zh) | 一种实现服务器负载均衡的方法及系统 | |
CN103997523A (zh) | 基于云服务的智慧城市业务系统及其实现方法 | |
CN102594728A (zh) | 一种分布式即时通讯方法及系统 | |
CN110149377A (zh) | 一种视频服务节点资源分配方法、系统、装置及存储介质 | |
CN109428735B (zh) | 计费方法和计费系统 | |
CN104320354A (zh) | 一种数据的处理方法及装置 | |
CN103218265B (zh) | 基于空间密度聚类的并行式虚拟角色划分方法 | |
CN104092627A (zh) | 带宽调整方法及装置 | |
CN105591790A (zh) | 数据通信连接池管理装置 | |
CN110351362A (zh) | 数据验证方法、设备及计算机可读存储介质 | |
CN202455381U (zh) | 一种分布式即时通讯系统 | |
CN106850262B (zh) | 一种服务器网络管理方法 | |
CN104766010A (zh) | 一种解决杀毒软件扫描风暴的方法 | |
CN103095604A (zh) | 识别家庭网络具体应用的系统及方法 | |
CN105391758B (zh) | 一种局域网中资源分配的方法和装置 | |
CN101695104A (zh) | 一种数字电视终端请求服务器的方法及相关设备 | |
CN103051626B (zh) | 一种认证方法及网络设备 | |
CN108304504A (zh) | 一种用户在线状态快速查询方法及系统 | |
CN102185713A (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 |