CN109981717A - 一种连接优化方法、装置及计算机存储介质 - Google Patents

一种连接优化方法、装置及计算机存储介质 Download PDF

Info

Publication number
CN109981717A
CN109981717A CN201711462663.5A CN201711462663A CN109981717A CN 109981717 A CN109981717 A CN 109981717A CN 201711462663 A CN201711462663 A CN 201711462663A CN 109981717 A CN109981717 A CN 109981717A
Authority
CN
China
Prior art keywords
client
connection
server
request message
inquiry request
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
Application number
CN201711462663.5A
Other languages
English (en)
Inventor
李小文
李晟
侍太岑
杨东
王伟
邢荣荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201711462663.5A priority Critical patent/CN109981717A/zh
Publication of CN109981717A publication Critical patent/CN109981717A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session

Landscapes

  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例公开了一种连接优化方法,包括:确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息;当接收到所述客户端基于所述询问请求消息发送的响应消息时,保持与所述客户端之间的套接字长连接。同时,本发明实施例还公开了一种连接优化装置及计算机存储介质。

Description

一种连接优化方法、装置及计算机存储介质
技术领域
本发明涉及通信领域,尤其涉及一种连接优化方法、装置及计算机存储介质。
背景技术
随着网站面临高并发访问、海量数据处理等场景越来越多,传统的WEB应用已经不能满足日益增长的用户访问量的需要,使得服务器系统经常出现卡死等问题。因此,如何使得网站具有高可用性、易伸缩性、可扩展性、安全等目标特性就显得越来越重要,而Eureka作为一种负载均衡技术常被用于解决上述问题。
Eureka是Netflix开发的服务发现框架,其本身是一种基于REST连接的服务。然而,基于Eureka架构下的客户端需要定时向服务器发送心跳包,服务器在接收到该心跳包后对客户端进行回复,以表明知道客户端处于在线状态,当客户端的网络或服务等出现问题时,服务器不能立即感知到,而需要根据客户端在默认时间内发送的心跳包情况来检查客户端是否正常在线即连接是否有效。例如,客户端默认每隔30秒会向服务器发起续约操作即发送心跳包,服务失效时间默认为90秒,当服务器在90秒内没有接收到来自客户端的心跳包时,服务器才能感知到与该客户端之间的连接断开问题,才会把客户端从服务列表中删除。然而,客户端与服务器之间的连接可能早已无法用于数据传输,这样将降低处理效率,并造成资源浪费。
发明内容
有鉴于此,本发明实施例提供了一种能够有效提高处理效率并节约资源的连接优化方法、装置及计算机存储介质。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供了一种连接优化方法,所述方法包括:
确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息;
当接收到所述客户端基于所述询问请求消息发送的响应消息时,保持与所述客户端之间的套接字长连接。
上述方案中,所述确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息之前,还包括:
监听客户端发送的连接请求;
当监听到客户端发送的连接请求时,根据所述连接请求与所述客户端之间建立套接字长连接。
上述方案中,所述确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息之后,还包括:
确定所述询问请求消息发送失败时,断开与所述客户端之间的套接字长连接。
本发明实施例提供了一种连接优化方法,所述方法包括:
接收服务器发送的询问请求消息;
根据接收到的所述询问请求消息,向所述服务器发送与所述询问请求消息对应的响应消息。
上述方案中,所述接收服务器发送的询问请求消息之前,还包括:
向所述服务器发送连接请求;
根据所述服务器基于所述连接请求所建立的套接字长连接向所述服务器发送数据。
上述方案中,还包括:
根据设置的时间间隔检测所述套接字长连接的连接状态;
当检测到与所述服务器之间的套接字长连接为断开时,向所述服务器发送连接请求。
本发明实施例提供了一种连接优化装置,所述装置包括:询问发送单元和处理单元;其中,
所述询问发送单元,用于确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息;
所述处理单元,用于当接收到所述客户端基于所述询问请求消息发送的响应消息时,保持与所述客户端之间的套接字长连接。
上述方案中,所述处理单元,还用于:监听客户端发送的连接请求;以及,当监听到客户端发送的连接请求时,根据所述连接请求与所述客户端之间建立套接字长连接。
上述方案中,所述处理单元,还用于确定所述询问请求消息发送失败时,断开与所述客户端之间的套接字长连接。
本发明实施例提供了一种连接优化装置,所述装置包括:询问接收单元和响应发送单元;其中,
所述询问接收单元,用于接收服务器发送的询问请求消息;
所述响应发送单元,用于根据接收到的所述询问请求消息,向所述服务器发送与所述询问请求消息对应的响应消息。
上述方案中,所述响应发送单元,还用于:
向所述服务器发送连接请求;
根据所述服务器基于所述连接请求所建立的套接字长连接向所述服务器发送数据。
上述方案中,所述装置还包括检测单元;其中,
所述检测单元,用于根据设置的时间间隔检测所述套接字长连接的连接状态;
所述响应发送单元,还用于当检测到与所述服务器之间的套接字长连接为断开时,向所述服务器发送连接请求。
本发明实施例提供了一种连接优化装置,所述连接优化装置包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行上述连接优化方法中的各个步骤。
本发明实施例提供了一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述连接优化方法。
本发明实施例提供的连接优化方法、装置及计算机存储介质,服务器确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息,以判断与所述客户端之间的套接字长连接是否可用于数据传输,当接收到所述客户端基于所述询问请求消息发送的响应消息即所述询问请求消息发送成功时,保持与所述客户端之间的套接字长连接,也就是说,服务器可以在未接收到客户端发送的心跳包时便向客户端主动发送询问请求消息,以确定与客户端之间的套接字长连接是否仍然可以正常通信,因此服务器对与客户端之间所建立的通信连接的连接状态可以及时感应,对于不能正常通信的客户端之间的连接可以及时释放相应的资源,确保服务器与客户端之间保持的连接均为有效连接,如此,有效提高了处理效率并节约了资源。
附图说明
图1为本发明一实施例中连接优化方法的流程示意图;
图2为本发明一实施例中连接优化装置的结构示意图;
图3为本发明另一实施例中连接优化方法的流程示意图;
图4为本发明另一实施例中连接优化装置的结构示意图;
图5为本发明又一实施例中连接优化装置的结构示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明技术方案做进一步的详细阐述。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
实施例一
本实施例提供了一种连接优化方法,如图1所示,该方法包括以下步骤:
步骤101:确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息;
具体地,服务器确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息,以确定所述服务器与所述客户端之间的套接字(socket)长连接是否仍然可以正常通信,即是否仍然可以与客户端之间进行数据传输。其中,设置时间阈值可以根据客户端向服务器发送心跳包的频率而进行确定,在一个可选的实施例中,设置时间阈值与客户端向服务器相邻两次发送心跳包的时间间隔相等。
在实际应用中,当服务器与客户端之间的长连接或短连接建立后,客户端根据设置的频率定时向服务器发送心跳包数据,即客户端每隔一个心跳包发送时间间隔发送一个心跳包给服务器,通过客户端以设置频率向服务器发送心跳包,服务器根据客户端是否正常发送心跳包对当前客户端与服务器之间的连接状态进行预判,当在设置时间阈值内未接收到客户端发送的心跳包时,服务器预判到当前客户端与服务器之间的连接可能存在故障,从而主动发送询问消息给客户端,通过主动发送询问消息对当前客户端与服务器之间的连接是否有效进行确认,从而达到周期性检测的目的。作为可选的实施例,所述设置时间阈值可根据客户端的心跳包发送时间间隔进行设置;例如,当客户端的心跳包发送间隔为30秒时,所述时间阈值可以设置为等于30秒,或者也可以设置为大于心跳包发送间隔一定值,如31秒、35秒等;当不考虑在正常传输状态下心跳包从客户端传输到服务器所消耗的时间,即忽略不计心跳包传输时间时,所述时间阈值可以设置为等于客户端的心跳包发送间隔;当考虑在正常传输状态下心跳包从客户端传输到服务器所消耗的时间时,可将所述时间阈值设置为大于客户端的心跳包发送间隔,所述设置时间阈值的具体大小可根据实际应用需要进行设置。所述询问请求消息的消息格式可以是预先设置的,用于使客户端接收到该询问请求消息后向服务器返回响应消息,以使服务器在接收到所述响应消息后获知通过所述服务器与所述客户端之间的套接字长连接可以继续进行数据传输。
步骤102:当接收到所述客户端基于所述询问请求消息发送的响应消息时,保持与所述客户端之间的套接字长连接。
具体地,客户端接收到服务器发送的询问请求消息后,通过与服务器之间所建立的套接字长连接返回对应的响应消息至服务器。当服务器接收到所述客户端基于所述询问请求消息发送的响应消息,即确定所述询问请求消息发送成功,表示客户端与服务器之间所建立的套接字长连接仍然处于有效的可通信的状态,从而服务器保持与所述客户端之间的套接字长连接。在另一可选的实施例中,步骤102:当接收到所述客户端基于所述询问请求消息发送的响应消息时,保持与所述客户端之间的套接字长连接之后,还包括:
确定所述询问请求消息发送失败时,断开与所述客户端之间的套接字长连接。
客户端接收到服务器发送的询问请求消息后,通过与服务器之间所建立的套接字长连接返回对应的响应消息至服务器。当服务器未接收到所述客户端基于所述询问请求消息发送的响应消息,即确定所述询问请求消息发送失败,表示客户端与服务器之间所建立的套接字长连接已处于无效的无法通信的状态,从而服务器断开与所述客户端之间的套接字长连接。
这里,服务器与客户端之间的连接为套接字长连接,客户端通过套接字长连接向服务器传输数据。服务器在设置时间阈值内未收到客户端发送的心跳包时,即主动向所述客户端发送询问请求消息,当客户端接收到服务器发送的询问请求消息时,即向所述服务器发送响应消息,其中,所述询问请求消息和响应消息均是通过服务器与客户端之间所建立的套接字长连接进行通信的,当服务器接收到客户端返回的响应消息时,说明所述询问请求消息通过所述服务器与所述客户端之间的套接字长连接传输给了所述客户端,并且所述客户端通过所述套接字长连接也可以返回响应消息给所述服务器,即所述服务器与所述客户端之间的套接字长连接可以正常进行数据传输,则所述服务器需要保持与所述客户端之间的套接字长连接。
当所述服务器未接收到所述客户端返回的响应消息时,说明所述询问请求消息没有通过所述服务器与所述客户端之间的套接字长连接传输给所述客户端,或者是所述客户端接收到所述询问请求消息后因网络故障或服务故障等原因无法通过所述服务器与所述客户端之间的套接字长连接将响应消息发送给所述服务器,此时所述服务器与所述客户端之间的套接字长连接不能正常进行数据传输,则所述服务器需要断开与所述客户端之间的套接字长连接。
这里,当所述服务器断开与所述客户端之间的套接字长连接后,还包括:将所述客户端从服务列表中删除。服务器将断开的套接字长连接对应的客户端从服务列表中删除,可以释放创建和维持与所述客户端之间的套接字长连接所消耗的资源,并可自动重新建立与所述客户端之间的套接字长连接。
上述实施例提供的连接优化方法可应用于服务器中,服务器确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息,以判断与所述客户端之间的套接字长连接是否可用于数据传输,当接收到所述客户端基于所述询问请求消息发送的响应消息即所述询问请求消息发送成功时,保持与所述客户端之间的套接字长连接,也就是说,服务器可以在未接收到客户端发送的心跳包时便向客户端主动发送询问请求消息,以确定与客户端之间的套接字长连接是否仍然可以正常通信,从而服务器对与客户端之间所建立的通信连接的连接状态可以及时感应。而当未接收到所述客户端基于所述询问请求消息发送的响应消息,即所述询问请求消息发送失败时,断开与所述客户端之间的套接字长连接,从而对于不能正常通信的客户端之间的连接可以及时释放相应的资源。如此,与现有技术中服务器只有当在未接收到客户端发送的心跳包后设置的失效时间后,才断开与客户端之间的连接的方法相比,本实施例中服务器在未接收到客户端发送的心跳包时主动向客户端发送询问请求消息,并根据该询问请求消息的发送结果进行相应处理,即在询问请求消息发送成功时继续保持长连接、发送失败时断开长连接,有效提高了处理效率并节约了资源。此外,在高并发情况下客户端和服务器之间也不需要频繁的建立长连接,有效节约了资源。
在一个可选的实施例中,所述确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息之前,该方法还可包括:
监听客户端发送的连接请求;
当监听到客户端发送的连接请求时,根据所述连接请求与所述客户端之间建立套接字长连接。
这里,服务器创建好套接字后,开启监听操作,以获取客户端发送的连接请求;当服务器监听到任意一个客户端发送的连接请求时,会根据所述连接请求与所述客户端之间建立套接字长连接。如此,使得服务器与客户端之间能够快速建立套接字长连接并基于该套接字长连接实现相互通信。此外,当所述服务器断开与所述客户端之间的套接字长连接之后,所述客户端会自动重新向所述服务器发起连接请求,所述服务器根据连接请求重新与所述客户端之间建立套接字长连接。
在一个可选的实施例中,服务器基于传输控制协议(TCP,Transmission ControlProtocol)与客户端之间建立套接字长连接的过程可以包括如下步骤:
1)利用函数socket()创建一个socket;
2)利用函数setsockopt()设置socket属性;
3)利用函数bind()绑定服务器的IP地址、端口等信息到socket上;
4)利用函数listen()开启监听;
5)利用函数accept()接收客户端发送的连接;
6)基于函数send()和recv()、或者read()和write()进行数据的接收与发送。
综上,服务器通过与客户端之间建立socket长连接,并通过该socket长连接与客户端之间进行数据传输,相比现有技术中服务器与客户端之间建立REST短连接的方式,能够避免在高并发情况下客户端与服务器之间需要频繁的建立短连接,从而节约资源。此外,当客户端与服务器之间的socket长连接断开后,客户端与服务器之间可自动重新建立新的socket长连接,相比现有技术中当客户端与服务器之间的REST短连接断开后,需要通过人为干预方式才能重新建立新的REST短连接,从而能够提升处理效率。
为实现上述方法,本实施例还提供了一种连接优化装置,如图2所示,该装置包括:询问发送单元10和处理单元11;其中,
所述询问发送单元10,用于确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息;
所述处理单元11,用于当接收到所述客户端基于所述询问请求消息发送的响应消息时,保持与所述客户端之间的套接字长连接。
上述实施例提供的连接优化装置可应用于服务器中,与现有技术中只有当在未接收到客户端发送的心跳包后设置的失效时间后,才断开与客户端之间的连接的方法相比,本实施例中在未接收到客户端发送的心跳包时主动向客户端发送询问请求消息,并根据该询问请求消息的发送结果进行相应处理,即在询问请求消息发送成功时继续保持连接、发送失败时断开连接,有效提高了处理效率并节约了资源。
在一个可选的实施例中,所述处理单元11,还用于:监听客户端发送的连接请求;以及,当监听到客户端发送的连接请求时,根据所述连接请求与所述客户端之间建立套接字长连接。
如此,能够快速与客户端之间建立套接字长连接并基于该套接字长连接实现相互通信。
在一个可选的实施例中,所述处理单元11,还用于确定所述询问请求消息发送失败时,断开与所述客户端之间的套接字长连接。
如此,可将断开的套接字长连接对应的客户端从服务列表中删除,并可以释放创建和维持与所述客户端之间的套接字长连接所消耗的资源。
实施例二
本实施例提供了一种连接优化方法,如图3所示,该方法包括以下步骤:
步骤201:接收服务器发送的询问请求消息;
具体地,客户端接收与所述客户端之间建立有套接字长连接的服务器发送的询问请求消息。
步骤202:根据接收到的所述询问请求消息,向所述服务器发送与所述询问请求消息对应的响应消息。
具体地,客户端根据步骤201中接收到的所述询问请求消息,向所述服务器发送与所述询问请求消息对应的响应消息。
这里,所述响应消息的格式可以是预先设置的,并与所述询问请求消息之间存在映射关系,即当客户端接收到所述询问请求消息时,即可根据所述询问请求消息发送所述响应消息到对端(即发送询问请求消息的服务器)。所述响应消息的具体内容可以根据需要进行设置,以使服务器接收到所述响应消息后可获知所述响应消息是针对所述询问请求消息的响应。
上述实施例提供的连接优化方法可应用于客户端中,通过对服务器发送的询问请求消息进行及时响应,以告知服务器通过与所述服务器之间的套接字长连接可进行数据传输,从而提高了处理效率。
在一个可选的实施例中,所述接收服务器发送的询问请求消息之前,该方法还可包括:
向所述服务器发送连接请求;
根据所述服务器基于所述连接请求所建立的套接字长连接向所述服务器发送数据。
具体地,客户端可以通过向服务器发送连接请求与服务器之间建立套接字长连接。当客户端需要与服务器之间建立套接字长连接时,向所述服务器发送连接请求,以请求与所述服务器之间建立套接字长连接;当所述服务器基于所述连接请求建立所述套接字长连接后,客户端通过所述套接字长连接向所述服务器发送数据,从而实现与服务器进行通信。
在一个可选的实施例中,客户端基于TCP与服务器之间建立套接字长连接的过程可以包括如下步骤:
1)利用函数socket()创建一个socket;
2)利用函数setsockopt()设置socket属性;
3)利用函数bind()绑定客户端的IP地址、端口等信息到socket上;
4)设置要连接的服务器的IP地址和端口等属性;
5)利用函数connect()连接服务器;
6)基于函数send()和recv()、或者read()和write()进行数据的接收与发送。
综上,客户端通过与服务器之间建立socket长连接,并通过该socket长连接与服务器之间进行数据传输,相比现有技术中在客户端与服务器之间建立REST短连接的方式,能够避免在高并发情况下客户端与服务器之间需要频繁的建立短连接,从而节约资源。此外,当客户端与服务器之间的socket长连接断开后,客户端与服务器之间可自动重新建立新的socket长连接,从而能够提升处理效率。
在一个可选的实施例中,该方法还可包括:
根据设置的时间间隔检测所述套接字长连接的连接状态;
当检测到与所述服务器之间的套接字长连接为断开时,向所述服务器发送连接请求。
具体地,客户端以设置的时间间隔对与所述服务器之间的套接字长连接的连接状态进行周期性检测,当检测到与所述服务器之间的套接字长连接为断开时,向所述服务器发送连接请求,以重新与所述服务器之间建立套接字长连接;当检测到与所述服务器之间的套接字长连接为未断开时,继续执行检测操作。
这里,客户端以设置的时间间隔对与所述服务器之间的套接字长连接的连接状态进行周期性检测,包括:客户端每隔一个心跳包发送时间间隔发送一个心跳包给服务器,并接收服务器基于所述心跳包发送的响应消息;当客户端接收到所述服务器基于所述心跳包发送的响应消息时,表示客户端与服务器之间所建立的套接字长连接仍然处于有效的可通信的状态;当客户端在设置的时间间隔内未接收到服务器基于所述心跳包发送的响应消息、或者在设置的时间间隔内接收到服务器基于所述心跳包发送的响应消息的次数小于设置的次数阈值时,表示客户端与所述服务器之间的套接字长连接已断开。作为可选的实施例,当客户端发送心跳包数据给服务器后,未及时接收到服务器返回的响应消息,且在设置的时间间隔内接收到服务器基于所述心跳包发送的响应消息的次数大于设置的次数阈值时,可以确定与所述服务器之间的套接字长连接仍然处于有效的可通信的状态。作为可选的实施例,所述时间间隔可根据客户端的心跳包发送间隔进行设置,并且需要设置所述时间间隔大于所述心跳包发送间隔;例如,当客户端的心跳包发送间隔为30秒时,所述时间间隔可以设置为90秒、或93秒等。其中,客户端通过以设置的时间间隔对与所述服务器之间的套接字长连接的连接状态进行周期性检测,当检测到与服务器之间的套接字长连接已断开时,则发送连接请求给服务器。
如此,确保始终建立与服务器之间的套接字长连接,使得当需要向服务器传输数据或接收服务器下发的数据时,都能够及时实现,提高处理效率。
为实现上述方法,本实施例还提供了一种连接优化装置,如图4所示,该装置包括:询问接收单元20和响应发送单元21;其中,
所述询问接收单元20,用于接收服务器发送的询问请求消息;
所述响应发送单元21,用于根据接收到的所述询问请求消息,向所述服务器发送与所述询问请求消息对应的响应消息。
上述实施例提供的连接优化装置可应用于客户端中,通过对服务器发送的询问请求消息进行及时响应,以告知服务器通过与所述服务器之间的套接字长连接可进行数据传输,从而提高了处理效率。
在一个可选的实施例中,所述响应发送单元21,还用于:
向所述服务器发送连接请求;
根据所述服务器基于所述连接请求所建立的套接字长连接向所述服务器发送数据。
在一个可选的实施例中,该装置还可包括检测单元22;其中,
所述检测单元22,用于根据设置的时间间隔检测所述套接字长连接的连接状态;
所述响应发送单元21,还用于当检测到与所述服务器之间的套接字长连接为断开时,向所述服务器发送连接请求。
实施例三
本实施例提供了一种连接优化装置,如图5所示,该连接优化装置包括:至少一个处理器210和用于存储能够在处理器210上运行的计算机程序的存储器211;其中,图5中示意的处理器210并非用于指代处理器的个数为一个,而是仅用于指代处理器相对其他器件的位置关系,在实际应用中,处理器的个数可以为一个或多个;同样,图5中示意的存储器211也是同样的含义,即仅用于指代存储器相对其他器件的位置关系,在实际应用中,存储器的个数可以为一个或多个。
其中,所述处理器210用于运行所述计算机程序时,执行如下步骤:
确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息;
当接收到所述客户端基于所述询问请求消息发送的响应消息时,保持与所述客户端之间的套接字长连接。
在一个可选的实施例中,所述处理器210还用于运行所述计算机程序时,执行如下步骤:
监听客户端发送的连接请求;
当监听到客户端发送的连接请求时,根据所述连接请求与所述客户端之间建立套接字长连接。
在一个可选的实施例中,所述处理器210还用于运行所述计算机程序时,执行如下步骤:
确定所述询问请求消息发送失败时,断开与所述客户端之间的套接字长连接。
该连接优化装置还包括:至少一个网络接口212。该连接优化装置中的各个组件通过总线系统213耦合在一起。可理解,总线系统213用于实现这些组件之间的连接通信。总线系统213除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统213。
其中,存储器211可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器211旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储器211用于存储各种类型的数据以支持连接优化装置的操作。这些数据的示例包括:用于在连接优化装置上操作的任何计算机程序,如操作系统和应用程序;联系人数据;电话簿数据;消息;图片;视频等。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。这里,实现本发明实施例方法的程序可以包含在应用程序中。
本实施例还提供了一种计算机存储介质,例如包括存储有计算机程序的存储器211,上述计算机程序可由连接优化装置中的处理器210执行,以完成前述方法所述步骤。计算机存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。
一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程被处理器运行时,执行如下步骤:
确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息;
当接收到所述客户端基于所述询问请求消息发送的响应消息时,保持与所述客户端之间的套接字长连接。
在一个可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
监听客户端发送的连接请求;
当监听到客户端发送的连接请求时,根据所述连接请求与所述客户端之间建立套接字长连接。
在一个可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
确定所述询问请求消息发送失败时,断开与所述客户端之间的套接字长连接。
本发明实施例提供的连接优化方法可以采用终端侧和服务器侧实施,就连接优化装置的硬件结构而言,请参阅图5,为本发明一实施例提供的连接优化装置的一个可选的硬件结构示意图,该连接优化装置包括:至少一个处理器210和用于存储能够在处理器210上运行的计算机程序的存储器211;其中,图5中示意的处理器210并非用于指代处理器的个数为一个,而是仅用于指代处理器相对其他器件的位置关系,在实际应用中,处理器的个数可以为一个或多个;同样,图5中示意的存储器211也是同样的含义,即仅用于指代存储器相对其他器件的位置关系,在实际应用中,存储器的个数可以为一个或多个。
其中,所述处理器210用于运行所述计算机程序时,执行如下步骤:
接收服务器发送的询问请求消息;
根据接收到的所述询问请求消息,向所述服务器发送与所述询问请求消息对应的响应消息。
在一个可选的实施例中,所述处理器210还用于运行所述计算机程序时,执行如下步骤:
向所述服务器发送连接请求;
根据所述服务器基于所述连接请求所建立的套接字长连接向所述服务器发送数据。
在一个可选的实施例中,所述处理器210还用于运行所述计算机程序时,执行如下步骤:
根据设置的时间间隔检测所述套接字长连接的连接状态;
当检测到与所述服务器之间的套接字长连接为断开时,向所述服务器发送连接请求。
该连接优化装置还包括:至少一个网络接口212。该连接优化装置中的各个组件通过总线系统213耦合在一起。可理解,总线系统213用于实现这些组件之间的连接通信。总线系统213除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统213。
本实施例还提供了一种计算机存储介质,例如包括存储有计算机程序的存储器211,上述计算机程序可由连接优化装置中的处理器210执行,以完成前述方法所述步骤。计算机存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。
一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器运行时,执行如下步骤:
接收服务器发送的询问请求消息;
根据接收到的所述询问请求消息,向所述服务器发送与所述询问请求消息对应的响应消息。
在一个可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
向所述服务器发送连接请求;
根据所述服务器基于所述连接请求所建立的套接字长连接向所述服务器发送数据。
在一个可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
根据设置的时间间隔检测所述套接字长连接的连接状态;
当检测到与所述服务器之间的套接字长连接为断开时,向所述服务器发送连接请求。
实施例四
下面通过一个具体示例对本实施例作进一步详细的说明,本实施例中以在Eureka环境下客户端和服务器进行连接优化为例,具体过程如下:
1)在服务器增加一个socket server的定时任务;
2)服务器采用异步处理与客户端通信的方式,每接收到一个socket连接请求就建立一个新的线程来处理该连接请求;
3)服务器跟客户端建立好连接之后,获取socket的Input Stream,并从中读取客户端发送过来的心跳包等信息;
4)如果服务器未接收到客户端发送的心跳包,服务器主动发送询问请求至客户端,如果询问请求发送失败,则断开连接;
5)在客户端增加一个socket client的定时任务,配置服务器的地址及监听端口,建立与服务器的连接,连接完成后向服务器发送数据;
6)客户端开启线程,负责读取服务器发送的数据;
7)服务器修改PeerEurekaNode类中发送心跳包方法(Send Heart Beat),由于在高并发情况下原REST连接方式已不能满足业务需求,故改为socket Server连接;
8)客户端修改DiscoveryClient类中定时任务,由REST连接改为socket客户端连接并且修改心跳检测线程(Heart Beat Thread)为每3秒发送一次心跳包;其次,检测socket是否连接,如果连接没有断开则继续检测,如果连接已经断开,则客户端按照策略重新连接服务器端。
综上所述,本实施例提供的连接优化方法,具有以下优点:一是减少资源浪费;在高并发情况下,客户端和服务器操作次数减少,相对于在高并发情况下采用短连接频繁的通信会造成Socket错误,而且频繁的Socket创建也会造成资源浪费。二是可用性好;每隔一心跳包发送间隔客户端会向服务器发送心跳包数据,如果心跳包数据不能发送成功,即服务器未接收到客户端发送的心跳包,则说明socket连接已经断开,此时释放服务器和客户端的资源,并自动建立一个新的socket连接,从而减少人为干预。三是效率高;客户端一旦出现故障,服务器能迅速响应并发现客户端的故障情况。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

Claims (10)

1.一种连接优化方法,应用于服务器,其特征在于,所述方法包括:
确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息;
当接收到所述客户端基于所述询问请求消息发送的响应消息时,保持与所述客户端之间的套接字长连接。
2.根据权利要求1所述的方法,其特征在于,所述确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息之前,还包括:
监听客户端发送的连接请求;
当监听到客户端发送的连接请求时,根据所述连接请求与所述客户端之间建立套接字长连接。
3.根据权利要求1或2所述的方法,其特征在于,所述确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息之后,还包括:
确定所述询问请求消息发送失败时,断开与所述客户端之间的套接字长连接。
4.一种连接优化方法,应用于客户端,其特征在于,所述方法包括:
接收服务器发送的询问请求消息;
根据接收到的所述询问请求消息,向所述服务器发送与所述询问请求消息对应的响应消息。
5.根据权利要求4所述的方法,其特征在于,所述接收服务器发送的询问请求消息之前,还包括:
向所述服务器发送连接请求;
根据所述服务器基于所述连接请求所建立的套接字长连接向所述服务器发送数据。
6.根据权利要求4或5所述的方法,其特征在于,还包括:
根据设置的时间间隔检测所述套接字长连接的连接状态;
当检测到与所述服务器之间的套接字长连接为断开时,向所述服务器发送连接请求。
7.一种连接优化装置,其特征在于,所述装置包括:询问发送单元和处理单元;其中,
所述询问发送单元,用于确定在设置时间阈值内未接收到客户端发送的心跳包时,向所述客户端发送询问请求消息;
所述处理单元,用于当接收到所述客户端基于所述询问请求消息发送的响应消息时,保持与所述客户端之间的套接字长连接。
8.一种连接优化装置,其特征在于,所述装置包括:询问接收单元和响应发送单元;其中,
所述询问接收单元,用于接收服务器发送的询问请求消息;
所述响应发送单元,用于根据接收到的所述询问请求消息,向所述服务器发送与所述询问请求消息对应的响应消息。
9.一种连接优化装置,其特征在于,所述连接优化装置包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行权利要求1至6中任意一项所述连接优化方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至6中任意一项所述连接优化方法的步骤。
CN201711462663.5A 2017-12-28 2017-12-28 一种连接优化方法、装置及计算机存储介质 Pending CN109981717A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711462663.5A CN109981717A (zh) 2017-12-28 2017-12-28 一种连接优化方法、装置及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711462663.5A CN109981717A (zh) 2017-12-28 2017-12-28 一种连接优化方法、装置及计算机存储介质

Publications (1)

Publication Number Publication Date
CN109981717A true CN109981717A (zh) 2019-07-05

Family

ID=67074917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711462663.5A Pending CN109981717A (zh) 2017-12-28 2017-12-28 一种连接优化方法、装置及计算机存储介质

Country Status (1)

Country Link
CN (1) CN109981717A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115633081A (zh) * 2022-10-13 2023-01-20 南京联创数字科技有限公司 一种基于Eureka心跳连接的优化方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105516221A (zh) * 2014-09-24 2016-04-20 阿里巴巴集团控股有限公司 信息推送系统及方法
CN105610888A (zh) * 2015-09-08 2016-05-25 华南师范大学 基于安卓的利用socket推送消息的方法和系统
CN105635248A (zh) * 2015-12-18 2016-06-01 Tcl集团股份有限公司 一种tcp连接资源的释放方法及系统
CN105959347A (zh) * 2016-04-20 2016-09-21 中国工程物理研究院计算机应用研究所 一种基于p2p网络的全数字协同仿真系统通信方法
CN206460566U (zh) * 2016-07-14 2017-09-01 于维峰 一种自助型干衣机支付系统
US9756677B2 (en) * 2013-04-30 2017-09-05 Seven Networks, Llc Detection and reporting of keepalive messages for optimization of keepalive traffic in a mobile network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9756677B2 (en) * 2013-04-30 2017-09-05 Seven Networks, Llc Detection and reporting of keepalive messages for optimization of keepalive traffic in a mobile network
CN105516221A (zh) * 2014-09-24 2016-04-20 阿里巴巴集团控股有限公司 信息推送系统及方法
CN105610888A (zh) * 2015-09-08 2016-05-25 华南师范大学 基于安卓的利用socket推送消息的方法和系统
CN105635248A (zh) * 2015-12-18 2016-06-01 Tcl集团股份有限公司 一种tcp连接资源的释放方法及系统
CN105959347A (zh) * 2016-04-20 2016-09-21 中国工程物理研究院计算机应用研究所 一种基于p2p网络的全数字协同仿真系统通信方法
CN206460566U (zh) * 2016-07-14 2017-09-01 于维峰 一种自助型干衣机支付系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115633081A (zh) * 2022-10-13 2023-01-20 南京联创数字科技有限公司 一种基于Eureka心跳连接的优化方法

Similar Documents

Publication Publication Date Title
CN105635248B (zh) 一种tcp连接资源的释放方法及系统
EP3352431B1 (en) Network load balance processing system, method, and apparatus
CN107204901B (zh) 一种提供、接收状态通知的计算机系统
CN108924274B (zh) 域名系统dns处理方法、装置、存储介质及电子设备
EP2079024A1 (en) Proxy server, communication system, communication method, and program
CN103812823A (zh) 虚拟机热迁移时配置信息迁移的方法、设备及系统
CN102571507B (zh) 一种唤醒设备的方法、休眠代理设备及系统
CN110868278B (zh) 一种轨道交通综合监控系统通信前置机双机冗余的方法
CN105245359B (zh) 一种路由器远程管理方法、系统和设备
CN103516587B (zh) 即时通信客户端断线重连的方法和装置
EP2597818A1 (en) Cluster management system and method
CN104954444B (zh) 一种迁移缓存数据的方法及设备
CN103944979A (zh) 一种消息推送方法、装置及系统
CN103825868A (zh) 一种本地语音逃生的方法、本地网关及系统
CN102045379B (zh) 一种进行ip存储的方法、系统和存储设备
CN100563263C (zh) 在网络存储业务中实现系统高可用性的方法和系统
CN107707689A (zh) 一种dhcp报文处理方法、dhcp服务器及网关设备
CN109981717A (zh) 一种连接优化方法、装置及计算机存储介质
WO2013159492A1 (zh) 信息上报与下载的方法及系统
JP5845554B2 (ja) マルチメディアデータを記録するための方法、デバイス、およびシステム
CN117336346A (zh) 一种ippbx与pms对接状态转换方法、终端设备及介质
CN110661836B (zh) 消息路由方法、装置及系统、存储介质
CN107454178B (zh) 数据传输方法及装置
WO2016161774A1 (zh) 终端应用访问nas的方法及装置
CN114553936B (zh) 连接方法、装置、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20190705

RJ01 Rejection of invention patent application after publication