CN102843365B - 一种单进程多实例通信方法及系统 - Google Patents
一种单进程多实例通信方法及系统 Download PDFInfo
- Publication number
- CN102843365B CN102843365B CN201210286317.7A CN201210286317A CN102843365B CN 102843365 B CN102843365 B CN 102843365B CN 201210286317 A CN201210286317 A CN 201210286317A CN 102843365 B CN102843365 B CN 102843365B
- Authority
- CN
- China
- Prior art keywords
- network layer
- instance
- business logic
- idleness
- server
- 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.)
- Active
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供一种单进程多实例通信方法及系统,本发明方法包括以下步骤。服务器初始化网络层实例及业务逻辑层实例。当客户端向所述服务器发送连接请求时,所述服务器根据预设策略确定目标网络层实例,所述目标网络层实例与所述客户端建立通信连接。所述服务器的所述目标网络层实例接收所述客户端发送的指令,并根据指令与业务逻辑层实例组的对应关系以及业务逻辑层实例的空闲率将所述指令分配至对应的业务逻辑层实例。
Description
技术领域
本发明属于网络通信领域,尤其涉及一种单进程多实例通信方法及系统。
背景技术
随着网络化社会的不断进步,越来越多的网络通讯工具应用到工作和生活中,比如飞信、MSN和一些企业版应用软件等。以上各种通信方式都依赖于不同架构模式,在分布式通信架构中,通信请求连接、断开及业务指令处理非常频繁,对网络的高效、流畅、实时性要求非常高。当大业务量并发的情况下,对通信请求处理就变得缓慢、延时或数据处理超时,且资源分配不合理,有时甚至导致系统崩溃。
发明内容
本发明提供一种单进程多实例通信方法及系统以解决上述问题。
本发明提供一种单进程多实例通信方法,包括以下步骤。服务器初始化网络层实例及业务逻辑层实例。当客户端向所述服务器发送连接请求时,所述服务器根据预设策略确定目标网络层实例,所述目标网络层实例与所述客户端建立通信连接。所述服务器的所述目标网络层实例接收所述客户端发送的指令,并根据指令与业务逻辑层实例组的对应关系以及业务逻辑层实例的空闲率将所述指令分配至对应的业务逻辑层实例。
本发明提供一种单进程多实例通信系统,包括客户端及服务器,所述客户端连接所述服务器。所述客户端,用于向所述服务器发送连接请求,并于建立与所述服务器的连接后,向所述服务器发送指令。所述服务器,用于初始化网络层实例及业务逻辑层实例,并于接收所述客户端的连接请求后,根据预设策略确定与所述客户端建立通信连接的目标网络层实例;还用于接收所述客户端发送的指令后,根据所述指令与业务逻辑层实例组的对应关系以及业务逻辑层实例的空闲率将所述指令分配至对应的业务逻辑层实例。
相较于先前技术,根据本发明提供的单进程多实例通信方法及系统,服务器初始化网络层实例及业务逻辑层实例后,服务器接收到客户端的连接请求时,根据预设策略确定与客户端建立通信连接的目标网络层实例,可充分提高网络层实例的资源利用率。服务器的目标网络层实例接收客户端发送的指令,并根据指令与业务逻辑层实例组的对应关系以及业务逻辑层实例的空闲率将所述指令分配至对应的业务逻辑层实例,实现了单进程多功能实例业务处理,节省了资源开销。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1所示为根据本发明的较佳实施例提供的单进程多实例通信方法的流程图;
图2所示为根据本发明的较佳实施例提供的单进程多实例通信系统的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为根据本发明的较佳实施例提供的单进程多实例通信方法的流程图。如图1所示,本发明的较佳实施例提供的单进程多实例通信方法包括步骤101~103。
步骤101:服务器初始化网络层实例及业务逻辑层实例。
具体而言,所述服务器初始化网络层实例的方式为,所述服务器启动一个网络层默认实例后,所述网络层默认实例依次实例化下一个网络层实例(“实例化”即“创建”)。具体过程为,网络层默认实例实例化第二个网络层实例后,由第二个网络层实例实例化第三个网络层实例,并依此类推。或者所述服务器初始化网络层实例的方式为,所述服务器直接启动一个网络层默认实例及多个网络层实例。
所述服务器初始化业务逻辑层实例的方式为,所述服务器创建多个业务逻辑层实例组,且一种指令对应一个或多个所述业务逻辑层实例组。
步骤102:当客户端向所述服务器发送连接请求时,所述服务器根据预设策略确定目标网络层实例,所述目标网络层实例与所述客户端建立通信连接。
具体而言,若所述服务器初始化网络层实例的方式为,启动一个网络层默认实例后,所述网络层默认实例依次实例化下一个网络层实例。所述预设策略为,当客户端向所述服务器发送连接请求时,所述网络层默认实例接收所述连接请求,并判断自身当前用户承载量是否达到最大用户承载量,若是,则所述网络层默认实例实例化下一个网络层实例,并将所述实例化的网络层实例对象通知客户端,所述客户端根据所述对象重新发送连接请求给所述实例化的网络层实例并建立通信连接,且所述客户端断开与所述网络层默认实例的连接请求。若否,则所述网络层默认实例直接与所述客户端建立连接。于此,所述网络层实例对象包括所述网络层实例名称、地址及端口号。
若所述服务器初始化网络层实例的方式为,直接启动一个网络层默认实例及多个网络层实例,所述预设策略为,当客户端向所述服务器发送连接请求时,所述网络层默认实例接收所述连接请求,并判断自身当前用户承载量是否达到最大用户承载量,若是,所述网络层默认实例发送通知给所述多个网络层实例,所述多个网络层实例计算自身空闲率并发送给网络层默认实例,所述网络层默认实例选择空闲率较高的网络层实例,并将所述选择的网络层实例对象通知客户端,所述客户端根据所述对象重新发送连接请求给所述空闲率较高的网络层实例并建立连接,且所述客户端断开与所述网络层默认实例的连接请求。若否,则所述网络层默认实例直接与所述客户端建立连接。
步骤103:所述服务器的所述目标网络层实例接收所述客户端发送的指令,并根据指令与业务逻辑层实例组的对应关系以及业务逻辑层实例的空闲率将所述指令分配至对应的业务逻辑层实例。
具体而言,在步骤101中,服务器创建了多个业务逻辑层实例组,且一种指令对应一个或多个所述业务逻辑层实例组。所述网络层实例存储所述指令与所述业务逻辑层实例组的对应关系。若一种指令仅对应一个业务逻辑层实例组,所述目标网络层实例根据指令与业务逻辑层实例组的对应关系查找到所述业务逻辑层实例组后,所述业务逻辑层实例组中业务逻辑层实例计算自身空闲率并通知所述业务逻辑层实例组,所述业务逻辑层实例组将各业务逻辑层实例空闲率发送给所述目标网络层实例,所述目标网络层实例选择空闲率较高的业务逻辑层实例处理所述指令。于本实施例中,所述业务逻辑层实例组中业务逻辑层实例也可计算自身空闲率后直接通知所述目标网络层实例,对此本发明并不作限定。
若一种指令对应多个业务逻辑层实例组,所述目标网络层实例根据自身存储的指令与业务逻辑层实例组的对应关系,查找到多个业务逻辑层实例组后,所述多个业务逻辑层实例组计算自身空闲率并通知所述目标网络层实例,所述目标网络层实例选择空闲率较高的业务逻辑层实例组后,选择所述业务逻辑层实例组中空闲率较高的业务逻辑层实例处理所述指令。所述目标网络层实例选择业务逻辑层实例处理所述指令的过程与上述实施例类似,故于此不再赘述。
其中,所述单个实例空闲率的计算方法为,单个实例的最大用户承载量与所述实例当前承载用户量的差值,再除以所述单个实例的最大用户承载量,所得商为所述单个实例空闲率。单个实例组空闲率的计算方法为,所述实例组中所有实例的最大用户承载量总和与所述所有实例当前承载用户量总和的差值,所述差值除以所述实例组中所有实例的最大用户承载量总和,所得商为所述单个实例组空闲率。
举例而言,若服务器初始化网络层实例时仅启动一个网络层默认实例,且所述网络层默认实例的最大用户承载量为50。若某一时刻,所述网络层默认实例接收客户端发送的连接请求后,判断自身用户承载量已达到50,且此时网络层默认实例还没有实例化其它网络层实例。所述网络层默认实例实例化一个网络层实例(即,网络层实例a),并将所述网络层实例a的对象通知客户端。客户端根据所述对象发送请求给网络层实例a并建立连接。
于此,若服务器创建多个业务逻辑层实例组,且一种指令对应一个业务逻辑层实例组。各业务逻辑层实例组与指令对应关系如表1所示。
业务逻辑层实例组 | 包括实例 | 指令种类 |
业务逻辑层实例组1 | 业务逻辑层实例11、12、13 | Login、Logout |
业务逻辑层实例组2 | 业务逻辑层实例21、22、23 | AcceptFriend |
业务逻辑层实例组3 | 业务逻辑层实例31、32 | Text |
业务逻辑层实例组4 | 业务逻辑层实例41、42、43 | group |
表1
若客户端向服务器发送Text指令,网络层实例a根据表1查找到该指令对应的业务逻辑层实例组3。若业务逻辑层实例31、32最大用户承载量均为100,且此时两者用户承载量分别为35及55。则业务逻辑层实例31计算自身空闲率为(100-35)/100=0.65,业务逻辑层实例32计算自身空闲率为(100-55)/100=0.45。业务逻辑层实例组3将接收到的业务逻辑层实例31、32的空闲率发送给目标网络层实例a,目标网络层实例a选择空闲率较高的业务逻辑层实例31处理所述Text指令。
另一方面,若服务器创建多个业务逻辑层实例组,且一种指令对应多个业务逻辑层实例组。各业务逻辑层实例组与指令对应关系如表2所示。
表2
若客户端向服务器发送AcceptFriend指令,网络层实例a根据表2查找到该指令对应的业务逻辑层实例组B及D。若业务逻辑层实例组B包含的业务逻辑层实例最大用户承载量总和为1000,业务逻辑层实例组D包含的业务逻辑层实例最大用户承载量总和也为1000,且此时业务逻辑层实例组B中所有业务逻辑层实例的当前承载用户量总和为280,业务逻辑层实例组D中所有业务逻辑层实例的当前承载用户量总和为600。则业务逻辑层实例组B的空闲率为(1000-280)/1000=0.72,业务逻辑层实例组D的空闲率为(1000-600)/1000=0.4。目标网络层实例(例如为网络层实例a)接收到业务逻辑层实例组B及D发送的空闲率后,选择空闲率较高的业务逻辑层实例组B。所述目标网络层实例通知所述业务逻辑层实例组B中各业务逻辑层实例计算并返回自身空闲率,其中各业务逻辑层实例计算自身空闲率的方式与上一实施例中各业务逻辑层实例计算方式相同,故于此不再赘述。所述目标网络层实例选择业务逻辑层实例组B中空闲率较高的业务逻辑层实例处理所述AcceptFriend指令。于上述实施例中,若有多个所述实例或者实例组空闲率最高且相等,则随机选择其中一个实例或者实例组,对此本发明并不作限定。
图2所示为根据本发明的较佳实施例提供的单进程多实例通信系统的示意图。如图2所示,本发明的较佳实施例提供的单进程多实例通信系统包括客户端201及服务器202,所述客户端201连接所述服务器202。所述客户端201,用于向所述服务器202发送连接请求,并于建立与所述服务器202的连接后,向所述服务器202发送指令。所述服务器202,用于初始化网络层实例及业务逻辑层实例,并于接收所述客户端201的连接请求后,根据预设策略确定与所述客户端201建立通信连接的目标网络层实例;还用于接收所述客户端201发送的指令后,根据所述指令与业务逻辑层实例组的对应关系以及业务逻辑层实例的空闲率将所述指令分配至对应的业务逻辑层实例。关于上述系统的操作流程同上述方法所述,故于此不再赘述。
综上所述,根据本发明提供的单进程多实例通信方法及系统,服务器初始化网络层实例及业务逻辑层实例后,服务器接收到客户端的连接请求时,根据预设策略确定与客户端建立通信连接的目标网络层实例,可充分提高网络层实例的资源利用率。服务器的目标网络层实例接收客户端发送的指令,并根据指令与业务逻辑层实例组的对应关系以及业务逻辑层实例的空闲率将所述指令分配至对应的业务逻辑层实例,实现了单进程多功能实例业务处理,节省了资源开销。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种单进程多实例通信方法,其特征在于,包括以下步骤:
服务器初始化网络层实例及业务逻辑层实例;
当客户端向所述服务器发送连接请求时,所述服务器根据预设策略确定目标网络层实例,所述目标网络层实例与所述客户端建立通信连接;
所述服务器的所述目标网络层实例接收所述客户端发送的指令,并根据指令与业务逻辑层实例组的对应关系以及业务逻辑层实例的空闲率将所述指令分配至对应的业务逻辑层实例;
若一种指令对应多个业务逻辑层实例组,所述目标网络层实例根据指令与业务逻辑层实例组的对应关系查找所述多个业务逻辑层实例组后,选择空闲率较高的业务逻辑层实例组,并选择所述业务逻辑层实例组中空闲率较高的业务逻辑层实例处理所述指令。
2.根据权利要求1所述的方法,其特征在于,所述服务器初始化网络层实例的方式为,所述服务器启动一个网络层默认实例后,所述网络层默认实例依次实例化下一个网络层实例,或者所述服务器直接启动一个网络层默认实例及多个网络层实例;
所述网络层默认实例依次实例化下一个网络层实例的具体过程为,网络层默认实例实例化第二个网络层实例后,由第二个网络层实例实例化第三个网络层实例,并依此类推。
3.根据权利要求2所述的方法,其特征在于,若所述服务器初始化网络层实例的方式为,启动一个网络层默认实例后,所述网络层默认实例依次实例化下一个网络层实例,所述预设策略为,当客户端向所述服务器发送连接请求时,所述网络层默认实例接收所述连接请求,并判断自身当前用户承载量是否达到最大用户承载量,若是,则所述网络层默认实例实例化下一个网络层实例后,所述网络层默认实例将所述实例化的网络层实例对象通知客户端,所述客户端重新发送连接请求给实例化的所述网络层实例并建立连接,若否,则所述网络层默认实例直接与所述客户端建立连接;
所述网络层默认实例依次实例化下一个网络层实例的具体过程为,网络层默认实例实例化第二个网络层实例后,由第二个网络层实例实例化第三个网络层实例,并依此类推。
4.根据权利要求2所述的方法,其特征在于,若所述服务器初始化网络层实例的方式为,直接启动一个网络层默认实例及多个网络层实例,所述预设策略为,当客户端向所述服务器发送连接请求时,所述网络层默认实例接收所述连接请求,并判断自身当前用户承载量是否达到最大用户承载量,若是,所述网络层默认实例将空闲率较高的网络层实例对象发送给客户端,所述客户端重新发送连接请求给所述空闲率较高的网络层实例并建立通信连接,若否,则所述网络层默认实例直接与所述客户端建立连接。
5.根据权利要求1所述的方法,其特征在于,所述服务器初始化业务逻辑层实例的方式为,所述服务器创建多个业务逻辑层实例组,且一种指令对应一个或多个所述业务逻辑层实例组。
6.根据权利要求1所述的方法,其特征在于,单个实例空闲率的计算方法为,单个实例的最大用户承载量与所述实例当前承载用户量的差值,除以所述单个实例的最大用户承载量,所得商即为所述单个实例空闲率;单个实例组空闲率的计算方法为,所述实例组中所有实例的最大用户承载量总和与所述所有实例当前承载用户量总和的差值,所述差值除以所述实例组中所有实例的最大用户承载量总和,所得商为所述单个实例组空闲率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210286317.7A CN102843365B (zh) | 2012-08-13 | 2012-08-13 | 一种单进程多实例通信方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210286317.7A CN102843365B (zh) | 2012-08-13 | 2012-08-13 | 一种单进程多实例通信方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102843365A CN102843365A (zh) | 2012-12-26 |
CN102843365B true CN102843365B (zh) | 2015-09-30 |
Family
ID=47370426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210286317.7A Active CN102843365B (zh) | 2012-08-13 | 2012-08-13 | 一种单进程多实例通信方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102843365B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112327732A (zh) * | 2020-10-22 | 2021-02-05 | 深圳达实智能股份有限公司 | 智慧建筑内微边缘服务控制方法、系统和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791113A (zh) * | 2005-12-26 | 2006-06-21 | 北京航空航天大学 | 均衡网格负载的方法 |
CN102123179A (zh) * | 2011-03-28 | 2011-07-13 | 中国人民解放军国防科学技术大学 | 应用于分布式应用系统的负载均衡方法和系统 |
CN102368782A (zh) * | 2011-10-14 | 2012-03-07 | 深圳市京华科讯科技有限公司 | 一种并行端口分布式资源管理的方法及系统 |
CN102594926A (zh) * | 2011-12-22 | 2012-07-18 | 华中科技大学 | 异构无线p2p网络文件共享系统及加速文件传输方法 |
-
2012
- 2012-08-13 CN CN201210286317.7A patent/CN102843365B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791113A (zh) * | 2005-12-26 | 2006-06-21 | 北京航空航天大学 | 均衡网格负载的方法 |
CN102123179A (zh) * | 2011-03-28 | 2011-07-13 | 中国人民解放军国防科学技术大学 | 应用于分布式应用系统的负载均衡方法和系统 |
CN102368782A (zh) * | 2011-10-14 | 2012-03-07 | 深圳市京华科讯科技有限公司 | 一种并行端口分布式资源管理的方法及系统 |
CN102594926A (zh) * | 2011-12-22 | 2012-07-18 | 华中科技大学 | 异构无线p2p网络文件共享系统及加速文件传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102843365A (zh) | 2012-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102209047B (zh) | 一种信息共享的即时通讯系统及方法 | |
CN102202015A (zh) | 实现不同种类即时通信工具互通的方法和系统 | |
EP1091602A3 (en) | Dynamic load balancing during message processing in a wireless communication service network | |
CN101217483A (zh) | 用于实现集群服务器内负载分担代理的方法 | |
CN104253850A (zh) | 一种任务分布式调度方法和系统 | |
CN103220165B (zh) | 一种服务器主动宕机的处理方法和装置 | |
CN101951557A (zh) | 一种基于终端协作的临时性群组管理方法、系统及终端 | |
CN102209051B (zh) | 一种实现用户信息共享的即时通讯系统及方法 | |
CN104268007A (zh) | 一种事件请求分布式调度方法和系统 | |
CN102209049B (zh) | 一种用户信息处理的即时通讯系统及方法 | |
CN110545302A (zh) | 一种计算迁移方法、设备及存储介质 | |
CN102209050B (zh) | 一种用户信息共享的即时通讯系统及方法 | |
CN102843365B (zh) | 一种单进程多实例通信方法及系统 | |
CN102209048B (zh) | 一种用于实现用户信息共享的即时通讯系统及方法 | |
CN112351077B (zh) | 一种应用服务运行方法、系统、装置及存储介质 | |
CN112613919A (zh) | 一种信息处理方法和相关装置 | |
CN102821154A (zh) | 一种多功能实例通信方法及系统 | |
CN103428028B (zh) | 异构网络的服务质量维护方法及系统 | |
CN104243587A (zh) | 一种消息服务器负载均衡方法及系统 | |
CN103117917B (zh) | 一种自动配置运行参数的方法及系统 | |
CN102263661A (zh) | 一种用户会话的备份切换方法及系统 | |
CN102843427A (zh) | 一种多实例的通信方法及系统 | |
CN103731806B (zh) | 一种短信发送流量控制方法、装置及短信发送系统 | |
CN105791149A (zh) | 一种报文处理方法及装置 | |
CN112839108A (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 | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: Suzhou City, Jiangsu province 215121 Fengting Avenue Suzhou Industrial Park No. 666 Weiting Intelligent Industrial Park Building 8 Applicant after: Kuo Di education and science company limited Address before: Suzhou City, Jiangsu province 215121 Fengting Avenue Suzhou Industrial Park No. 666 Weiting Intelligent Industrial Park Building 8 Applicant before: Suzhou Kuodi Network Technology Co., Ltd. |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: SUZHOU KUODI NETWORK TECHNOLOGY CO., LTD. TO: CODYY EDUCATION TECHNOLOGY CO., LTD. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |