O2O多通道的通信方法及系统与流程

文档序号:12829296阅读:209来源:国知局
O2O多通道的通信方法及系统与流程

本发明涉及网络通信技术领域,尤其是涉及一种o2o多通道的通信方法及系统。



背景技术:

o2o即onlinetooffline(在线离线/线上到线下),是指将线下的商务机会与互联网结合,让互联网成为线下交易的平台,这个概念最早来源于美国。o2o的概念非常广泛,既可涉及到线上,又可涉及到线下,可以通称为o2o。

线上线下之间进行通信时,在正常模式下软件自动选择实时通信框架(windowscommunicationfoundation,wcf)双工进行线上线下的点对点同步通信。但如果线下通道不通或发生异常时,线上无法及时准确的定位线下的则无法继续通信,线上无法快速找到线下的通道而进行快速的通信,这给线上终端和线下终端的用户带来极大的不便和损失。另外,对于服务器资源的占用情况,用户规模与资源的分配不合理,会有资源浪费和资源不足这两种极端的现象。



技术实现要素:

有鉴于此,本发明的目的在于提供o2o多通道的通信方法及系统,以优化线上线下的通信方式,提高线上线下点对点同步通信的效率,节约资源。

第一方面,本发明实施例提供了一种o2o多通道的通信方法,其中,包括:

接收高速缓存模块发送的通道状态信息,所述通道状态信息包括心跳信息和当前资源使用信息;

判断所述心跳信息是否为同步通道正常信息;

如果不是所述同步通道正常信息,则从通信框架wcf双工通信方式切换至套接字socket异步通信方式;

根据所述当前资源使用信息进行进程监听和资源监听;

根据资源监听结果进行服务器扩容。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述当前资源使用信息包括指标信息,所述根据所述当前资源使用信息进行进程监听和资源监听包括:

对服务器的传输控制协议tcp连接数、中央处理器cpu使用率和内存使用率进行监听,得到所述指标信息;

判断所述指标信息是否达到第一阈值,其中第一阈值包括tcp连接数阈值、cpu使用率阈值和内存使用率阈值;

如果所述指标信息有至少一项达到匹配的所述第一阈值,则生成提醒信息。

结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述资源监听结果包括提醒信息,所述根据资源监听结果进行服务器扩容包括:

根据所述提醒信息进行所述服务器扩容。

结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述当前资源使用信息包括所述wcf双工通信方式的占用连接数和所述socket异步通信方式的占用连接数,所述根据所述当前资源使用信息进行进程监听和资源监听还包括:

对所述wcf双工通信方式的占用连接数和所述socket异步通信方式的占用连接数进行监听,获取wcf双工连接数和socket异步连接数;

根据所述wcf双工连接数和所述socket异步连接数,得到占用率;

判断所述占用率是否满足预设条件,其中,所述预设条件包括第一预设条件和第二预设条件;

如果所述占用率满足所述第一预设条件,则选取所述wcf双工通信方式;

如果所述占用率满足所述第二预设条件,则选取所述socket异步通信方式。

结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述根据所述wcf双工连接数和所述socket异步连接数,得到占用率包括:

根据下式计算所述占用率:

p=(a-b)/(a+b)×100%

其中,所述p为所述占用率,a为所述wcf双工连接数,b为所述socket异步连接数。

第二方面,本发明实施例还提供一种o2o多通道的通信系统,其中,包括:

云端服务器,用于接收高速缓存模块发送的通道状态信息,所述通道状态信息包括心跳信息和当前资源使用信息,判断所述心跳信息是否为同步通道正常信息,在不是所述同步通道正常信息的情况下,从wcf双工通信方式切换至socket异步通信方式;

监听模块,用于根据所述当前资源使用信息进行进程监听和资源监听;

弹性伸缩服务ess模块,用于根据资源监听结果进行服务器扩容。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述当前资源使用信息包括指标信息,所述监听模块还包括:

对服务器的传输控制协议tcp连接数、中央处理器cpu使用率和内存使用率进行监听,得到所述指标信息;

判断所述指标信息是否达到第一阈值,其中第一阈值包括tcp连接数阈值、cpu使用率阈值和内存使用率阈值;

在所述指标信息有至少一项达到匹配的所述第一阈值的情况下,生成提醒信息。

结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述资源监听结果包括提醒信息,所述ess模块包括:

根据所述提醒信息进行所述服务器扩容。

结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述当前资源使用信息包括所述wcf双工通信方式的占用连接数和所述socket异步通信方式的占用连接数,所述监听模块包括:

对所述wcf双工通信方式的占用连接数和所述socket异步通信方式的占用连接数进行监听,获取wcf双工连接数和socket异步连接数;

根据所述wcf双工连接数和所述socket异步连接数,得到占用率;

判断所述占用率是否满足预设条件,其中,所述预设条件包括第一预设条件和第二预设条件;

在所述占用率满足所述第一预设条件的情况下,选取所述wcf双工通信方式;

在所述占用率满足所述第二预设条件的情况下,选取所述socket异步通信方式。

结合第二方面的第三种可能的实施方式,本发明实施例提供了第二方面的第四种可能的实施方式,其中,所述根据所述wcf双工连接数和所述socket异步连接数,得到占用率包括:

根据下式计算所述占用率:

p=(a-b)/(a+b)×100%

其中,所述p为所述占用率,a为所述wcf双工连接数,b为所述socket异步连接数。

本发明提供的o2o多通道的通信方法及系统,通过接收高速缓存模块发送的通道状态信息,通道状态信息包括心跳信息和当前资源使用信息,判断心跳信息是否为同步通道正常信息,在不是同步通道正常信息的情况下,从wcf双工通信方式切换至socket异步通信方式,根据当前资源使用信息进行进程监听和资源监听,根据资源监听结果进行服务器扩容。本发明可以优化线上线下的通信方式,提高线上线下点对点同步通信的效率,节约资源。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一提供的o2o多通道的通信方法流程图;

图2为本发明实施例一提供的o2o多通道的通信方法中步骤s140的一种实现方法流程图;

图3为本发明实施例一提供的o2o多通道的通信方法中步骤s140的另一种实现方法流程图;

图4为本发明实施例二提供的一种o2o多通道的通信系统示意图;

图5为本发明实施例三提供的另一种o2o多通道的通信系统示意图。

图标:

110-ess模块;120-云端服务器;130-监听模块;210-线上终端;220-负载均衡模块;230-通信模块;240-高速缓存模块;250-通道选择模块;260-线下终端。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前,线上线下之间进行通信时,在正常模式下软件自动选择wcf(windowscommunicationfoundation,通信框架)双工进行线上线下的点对点同步通信。但如果线下通道不通或发生异常时,线上无法及时准确的定位线下的则无法继续通信,线上无法快速找到线下的通道而进行快速的通信,这给线上终端和线下终端的用户带来极大的不便和损失。另外,对于服务器资源的占用情况,用户规模与资源的分配不合理,会有资源浪费和资源不足这两种极端的现象。

基于此,本发明实施例提供的o2o多通道的通信方法及系统,以优化线上线下的通信方式,提高线上线下点对点同步通信的效率,节约资源。

为便于对本实施例进行理解,首先对本发明实施例所公开的o2o多通道的通信方法进行详细介绍。

实施例一:

图1为本发明实施例一提供的o2o多通道的通信方法流程图。

参照图1,o2o多通道的通信方法包括如下步骤:

步骤s110,接收高速缓存模块发送的通道状态信息,通道状态信息包括心跳信息和当前资源使用信息;

具体的,在正常模式下软件自动选择实时wcf双工通信方式进行线上线下的点对点同步通信。如果通过心跳信息判断出线下通道不通或发生异常,软件自动切换到基于socket异步通信方式。如果服务器资源占用过高,云端服务器也会根据当前资源使用信息自动选择最优通信方案通知到线下。

步骤s120,判断心跳信息是否为同步通道正常信息,如果不是同步通道正常信息,则执行步骤s131;如果是同步通道正常信息,则执行步骤s132;

步骤s131,从wcf双工通信方式切换至socket(套接字)异步通信方式;

步骤s132,选取wcf双工通信方式。

具体的,在通道状态信息为心跳信息的情况下,wcf双工通信方式通道连通性是通过线下客户端不断在向云端服务器发送心跳的方式来判断,线下客户端每隔一段时间(比如10秒钟)向服务器端的wcf双工通道发送一次心跳,这样服务器端就能实时检测到线下客户端连接是否正常,在服务器端接收到线下客户端的心跳同时刷新该通道在缓存中的最后心跳时间,保证高速缓存模块能够快速检测到线下通道是否正常。如果线下通道不通或发生异常,软件自动切换到基于socket异步通信方式。

另外,socket异步通信方式除了通过socket实时长连接通道检测通道的联通性外,防止socket异步通信方式假死的情况,还通过线下客户端不断发送心跳的方式来保证服务器端能够及时检测到线下通道的情况。在服务器端接收到线下客户端的心跳同时刷新该通道在缓存中的最后心跳时间,保证高速缓存模块能够快速检测到线下通道是否正常。

以上提到的高速缓存模块是使用redis分布式缓存来实现快速存储和快速寻找线下通信通道,通过客户端发送心跳的方式不断的刷新在缓存中的通道状态,从而达到服务器端能够及时的定位线下通道的状态。线下终端通过不停发送心跳的方式,通知服务器端来保持线下客户端的回话,服务器端是多台服务器做了负载,即线上终端,所以通过redis缓存的方式实现会话共享。

步骤s140,根据当前资源使用信息进行进程监听和资源监听;

具体的,一方面是在服务器端开发服务器资源监听服务,另一方面是在服务器端开发进程监听服务。

步骤s150,根据资源监听结果进行服务器扩容。

根据本发明的示例性实施例,当前资源使用信息包括指标信息,参照图2,o2o多通道的通信方法中步骤s140的实现方法包括如下步骤:

步骤s210,对服务器的tcp(transmissioncontrolprotocol,传输控制协议)连接数、cpu(centralprocessingunit,中央处理器)使用率和内存使用率进行监听,得到指标信息;

步骤s220,判断指标信息是否达到第一阈值,其中第一阈值包括tcp连接数阈值、cpu使用率阈值和内存使用率阈值;

步骤s230,如果指标信息有至少一项达到匹配的第一阈值,则生成提醒信息。

具体的,在服务器端开发的服务器资源监听服务,主要监听服务器资源的使用情况,也就是对服务器的tcp连接数、cpu使用率和内存使用率这三个指标信息进行监听,每1分中刷新一次监听数据,当三个指标信息中的一个或者多个指标数据达到设定的第一阈值时,生成提醒信息并以短信通知的方式发送给责任人,并做服务器的扩容;这里,与三个指标信息相对应的,第一阈值分别是tcp连接数5000、cpu使用率80%和内存使用率90%。

根据本发明的示例性实施例,根据资源监听结果进行服务器扩容包括:

根据提醒信息进行服务器扩容。

具体的,在服务器端为每个商户都开辟可伸缩的服务器资源。可伸缩的服务器资源指根据各商户的用户规模和业务规模分配不同的服务器资源,比如a商户属于大型商户,拥有千万级的用户,会为a商户分配自己特定的服务器资源,避免其它小商户占用a商户的服务器资源而导致a商户服务器资源不足等。对于一些小型商户(拥有万级一下的商户)全部分配统一的服务器资源,避免资源过度浪费。

根据本发明的示例性实施例,当前资源使用信息包括wcf双工通信方式的占用连接数和socket异步通信方式的占用连接数,参照图3,o2o多通道的通信方法中步骤s140的实现方法还可以包括如下步骤:

步骤s310,对wcf双工通信方式的占用连接数和socket异步通信方式的占用连接数进行监听,获取wcf双工连接数和socket异步连接数;

步骤s320,根据wcf双工连接数和socket异步连接数,得到占用率;

步骤s330,判断占用率是否满足预设条件,其中,预设条件包括第一预设条件和第二预设条件;如果占用率满足第一预设条件,则执行步骤s341;如果占用率满足第二预设条件,则执行步骤s342;

步骤s341,选取wcf双工通信方式;

步骤s342,选取socket异步通信方式。

具体的,在服务器端开发的进程监听服务,主要是监听wcf双工通信方式和socket异步通信方式的进程占用的连接数,用下式来表示占用率:

p=(a-b)/(a+b)×100%

其中,p表示占用率,a表示wcf双工连接数,b表示socket异步连接数,当满足第一预设条件p<-10%时,表示wcf双工通信方式比较空闲,这时优先现在wcf双工通信方式;当满足第二预设条件p>10%时,表示socket比较空闲,则优先选择socket异步通信方式。

本发明提供的o2o多通道的通信方法,通过接收高速缓存模块发送的通道状态信息,通道状态信息包括心跳信息和当前资源使用信息,判断心跳信息是否为同步通道正常信息,在不是同步通道正常信息的情况下,从wcf双工通信方式切换至socket异步通信方式,根据当前资源使用信息进行进程监听和资源监听,根据资源监听结果进行服务器扩容。本发明可以优化线上线下的通信方式,提高线上线下点对点同步通信的效率,节约资源。

实施例二:

图4为本发明实施例二提供的o2o多通道的通信系统示意图。

参照图4,o2o多通道的通信系统包括云端服务器120、监听模块130和弹性伸缩服务ess模块110;

云端服务器120,用于接收高速缓存模块240发送的通道状态信息,通道状态信息包括心跳信息和当前资源使用信息,判断心跳信息是否为同步通道正常信息,在不是同步通道正常信息的情况下,从wcf双工通信方式切换至socket异步通信方式;

监听模块130,用于根据当前资源使用信息进行进程监听和资源监听;

ess模块110,用于根据资源监听结果进行服务器扩容。

根据本发明的示例性实施例,当前资源使用信息包括指标信息,监听模块130还包括:

对服务器的tcp连接数、cpu使用率和内存使用率进行监听,得到指标信息;

判断指标信息是否达到第一阈值,其中第一阈值包括tcp连接数阈值、cpu使用率阈值和内存使用率阈值;

在指标信息有至少一项达到匹配的第一阈值的情况下,生成提醒信息。

根据本发明的示例性实施例,资源监听结果包括提醒信息,ess模块110包括:

根据提醒信息进行服务器扩容。

根据本发明的示例性实施例,当前资源使用信息包括wcf双工通信方式的占用连接数和socket异步通信方式的占用连接数,监听模块130包括:

对wcf双工通信方式的占用连接数和socket异步通信方式的占用连接数进行监听,获取wcf双工连接数和socket异步连接数;

根据wcf双工连接数和socket异步连接数,得到占用率;

判断占用率是否满足预设条件,其中,预设条件包括第一预设条件和第二预设条件;

在占用率满足第一预设条件的情况下,选取wcf双工通信方式;

在占用率满足第二预设条件的情况下,选取socket异步通信方式。

根据本发明的示例性实施例,根据wcf双工连接数和socket异步连接数,得到占用率包括:

根据下式计算占用率:

p=(a-b)/(a+b)×100%

其中,p为占用率,a为wcf双工连接数,b为socket异步连接数。

实施例三:

图5为本发明实施例三提供的o2o多通道的通信系统示意图。

参照图5,在该o2o多通道的通信系统中,一方面是从线下终端260到线上终端210进行心跳通信,另一方面是从线上终端210到线下终端260进行业务通信。心跳通信占用的资源开销较小,主要资源开销是在业务通信的过程中。线上终端210通过负载均衡模块220将业务通信信息分摊给通信模块230中的wcf双工通信方式和socket异步通信方式,wcf双工通信方式和socket异步通信方式将业务通信信息发送给高速缓存模块240,高速缓存模块240根据通道的状态,选择wcf双工通信方式或socket异步通信方式,并通过通道选择模块250选取匹配的通道将业务通信信息发送给线下终端260。

另外,负载均衡模块220还具有解决高并发访问服务器资源瓶颈的问题、可扩展的服务器架构、对网络流量统一控制和监控、合理分担系统负载、提高系统可靠性以及支持网站内容的虚拟化等作用。

本发明提供的o2o多通道的通信系统,通过接收高速缓存模块240发送的通道状态信息,通道状态信息包括心跳信息和当前资源使用信息,判断心跳信息是否为同步通道正常信息,在不是同步通道正常信息的情况下,从wcf双工通信方式切换至socket异步通信方式,根据当前资源使用信息进行进程监听和资源监听,根据资源监听结果进行服务器扩容。本发明可以优化线上线下的通信方式,提高线上线下点对点同步通信的效率,节约资源。

本发明实施例所提供的o2o多通道的通信方法及系统的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1