响应消息的缓冲方法及服务器技术

技术编号:18458642 阅读:22 留言:0更新日期:2018-07-18 12:38
本发明专利技术实施例涉及消息处理技术领域,公开了一种响应消息的缓冲方法及服务器。本发明专利技术中,响应消息的缓冲方法包括:当存在需要缓冲的响应消息时,判断预设的内存缓冲区的剩余空间是否能够存放响应消息;若内存缓冲区的剩余空间不能够存放响应消息,则将响应消息存放至预设的磁盘缓冲区。本发明专利技术还提供一种服务器。本发明专利技术实施方式提供的响应消息的缓冲方法及服务器,不仅提升了系统响应时间和系统稳定性,而且节约了内存成本。

Response message buffering and server

The embodiment of the invention relates to the field of message processing technology, and discloses a buffer method for responding messages and a server. In the present invention, the response message buffering method includes: when there is a response message that needs to be buffered, it is judged whether the remaining space of the default memory buffer can store the response message; if the remaining space of the memory buffer cannot store the response message, the response message is stored to the default disk buffer. The invention also provides a server. The response message buffering method and server provided by the present invention not only enhance the system response time and system stability, but also save the memory cost.

【技术实现步骤摘要】
响应消息的缓冲方法及服务器
本专利技术实施例涉及消息处理
,特别涉及响应消息的缓冲方法及服务器。
技术介绍
为了提高socket响应消息发送吞吐量,需要由服务器中的处理消息请求线程把响应消息写入缓冲区,并由消息处理线程来将缓冲区中的消息发送出去,因此,既要保证消息写入到缓冲区的响应速度,又要保证缓冲区发送消息的响应速度。目前中小企业服务器,一般的缓冲区都只是在内存中。服务器的带宽普遍在1~100M之间,网络传输速度0.12~12.5MB/s之间。而内存读写速度在1G/s以上,如果出现大量内存随机访问,导致频繁出现缺页或者页面调入调出的情况,内存随机读写速度会大大降低;若响应消息的流量较大,很容易造成服务器网络发送消息的响应速度跟不上消息增加速度,造成请求堆积、服务器无响应。专利技术人发现现有技术中至少存在如下问题:目前的中小企业服务器,当出现内存缓冲区满了(网络发送速度跟不上消息增加速度)的情况时,只能停掉服务器或动态增加内存缓冲区大小,这样既影响系统的响应时间又导致系统的不稳定性,而且内存是相对昂贵资源,特别是达到一定大小后再扩容,费用相当高。
技术实现思路
本专利技术实施方式的目的在于提供一种响应消息的缓冲方法及服务器,不仅提升了系统响应时间和系统稳定性,而且节约了内存成本。为解决上述技术问题,本专利技术的实施方式提供了一种响应消息的缓冲方法,包括:当存在需要缓冲的响应消息时,判断预设的内存缓冲区的剩余空间是否能够存放所述响应消息;若所述内存缓冲区的剩余空间不能够存放所述响应消息,则将所述响应消息存放至预设的磁盘缓冲区。本专利技术的实施方式还提供了一种服务器,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够上述响应消息的缓冲方法。本专利技术的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述响应消息的缓冲方法。本专利技术实施方式相对于现有技术而言,当内存缓冲区的剩余空间不能够存放所述响应消息,则将所述响应消息存放至预设的磁盘缓冲区;即能够在内存缓冲区已满情况下,利用磁盘缓冲区对响应消息进行缓冲,而无需停掉服务器或动态增加内存缓冲区大小,从而能够在最大限度地利用设置的内存空间前提下,充分利用磁盘空间,不仅提升了系统响应时间和系统稳定性,而且节约了内存成本。另外,所述将所述响应消息存放至预设的磁盘缓冲区,具体包括:获取所述磁盘缓冲区中的当前缓冲文件;根据预设的单文件大小阈值与所述当前缓冲文件的文件大小,计算出所述当前缓冲文件的剩余可用大小;判断所述当前缓冲文件的剩余可用大小是否能够存放所述响应消息;若所述当前缓冲文件的剩余可用大小能够存放所述响应消息,将所述响应消息存放至所述当前缓冲文件;若所述当前缓冲文件的剩余可用大小不能够存放所述响应消息,新建另一缓冲文件,并将所述另一缓冲文件设定为所述当前缓冲文件,并将所述响应消息存放至重新设定的所述当前缓冲文件。本实施例的技术方案,可以确保单个缓冲文件的大小不超过预设的单文件大小阈值,从而可以避免由于单个文件过大而可能导致的读写错误的问题。另外,所述判断预设的内存缓冲区的剩余空间是否能够存放所述响应消息,具体包括:获取所述内存缓冲区中的当前缓冲块;判断所述当前缓冲块的剩余空间是否能够存放所述响应消息;若所述当前缓冲块的剩余空间不能够存放所述响应消息,判断所述内存缓冲区中是否存在另一缓冲块,其中所述另一缓冲块的剩余空间能够存放所述响应消息;若不存在所述另一缓冲块,则判定所述内存缓冲区的剩余空间不能够存放所述响应消息。本实施例提供了判断内存缓冲区的剩余空间是否能够存放所述响应消息的一种具体方式。另外,所述将所述响应消息存放至所述磁盘缓冲区之后,还包括:获取所述响应消息的指针,并将所述响应消息的指针加入预设的消息队列;所述消息队列中包括多个所述响应消息的指针;在消息发送过程中,从所述消息队列中依次获取各所述响应消息的指针;根据各所述响应消息的指针获取各所述响应消息,并将获取的各所述响应消息发送出去;其中,若所述响应消息的指针指向所述磁盘缓冲区,则从所述磁盘缓冲区获取所述响应消息;若所述响应消息的指针指向所述内存缓冲区,则从所述内存缓冲区获取所述响应消息。本实施例提供了响应消息发送过程的一种具体方式。另外,在所述将获取的各所述响应消息发送出去之后,还包括:若所述响应消息是从所述磁盘缓冲区获取的,判断所述响应消息所在的缓冲文件中的所有响应消息是否均已发送完毕;若均已发送完毕,则回收所述响应消息所在的缓冲文件。本实施例提供的技术方案,当响应消息发送完毕时,能够对磁盘缓冲区的缓冲文件进行及时回收,从而便于快速循环利用。另外,所述回收所述响应消息所在的缓冲文件,具体包括:将所述响应消息所在的缓冲文件标记为待回收状态;定时回收被标记为待回收状态的所述缓冲文件。本实施例提供了回收磁盘缓存文件的一种具体实现方法。附图说明一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。图1是根据本专利技术第一实施例的响应消息的缓冲方法的流程图;图2是根据本专利技术第一实施例的响应消息的缓冲方法的具体流程图;图3是根据本专利技术第二实施例的响应消息的缓冲方法的流程图;图4是根据本专利技术第三实施例的响应消息的缓冲方法的流程图;。图5是根据本专利技术第四实施例的服务器的具体流程图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本专利技术各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。本专利技术的第一实施方式涉及一种响应消息的缓冲方法,包括:当存在需要缓冲的响应消息时,判断预设的内存缓冲区的剩余空间是否能够存放响应消息;若内存缓冲区的剩余空间不能够存放响应消息,则将响应消息存放至预设的磁盘缓冲区。本实施方式与现有技术相比,当内存缓冲区的剩余空间不能够存放所述响应消息,则将所述响应消息存放至预设的磁盘缓冲区;即能够在内存缓冲区已满情况下,利用磁盘缓冲区对响应消息进行缓冲,而无需停掉服务器或动态增加内存缓冲区大小,从而能够在最大限度地利用设置的内存空间前提下,充分利用磁盘空间,不仅提升了系统响应时间和系统稳定性,而且节约了内存成本。下面对本实施方式的响应消息的缓冲方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。本实施方式中的响应消息的缓冲方法应用于服务器,请参考图1,具体包括:步骤101,判断是否存在需要缓存的响应消息。若是,则进入步骤102,若否,则返回步骤101。具体而言,当服务器接收到客户端的请求信息时,会根据请求信息生成响应消息,此时服务器判定存在需要缓存的响应消息,然后进入步骤102;否则,重复执行步骤101;即可以理解为,服务器会实时检测是否存在需要缓存的响应消息,每当检本文档来自技高网...

【技术保护点】
1.一种响应消息的缓冲方法,其特征在于,包括:当存在需要缓冲的响应消息时,判断预设的内存缓冲区的剩余空间是否能够存放所述响应消息;若所述内存缓冲区的剩余空间不能够存放所述响应消息,则将所述响应消息存放至预设的磁盘缓冲区。

【技术特征摘要】
1.一种响应消息的缓冲方法,其特征在于,包括:当存在需要缓冲的响应消息时,判断预设的内存缓冲区的剩余空间是否能够存放所述响应消息;若所述内存缓冲区的剩余空间不能够存放所述响应消息,则将所述响应消息存放至预设的磁盘缓冲区。2.根据权利要求1所述的响应消息的缓冲方法,其特征在于,所述将所述响应消息存放至预设的磁盘缓冲区,具体包括:获取所述磁盘缓冲区中的当前缓冲文件;根据预设的单文件大小阈值与所述当前缓冲文件的文件大小,计算出所述当前缓冲文件的剩余可用大小;判断所述当前缓冲文件的剩余可用大小是否能够存放所述响应消息;若所述当前缓冲文件的剩余可用大小能够存放所述响应消息,将所述响应消息存放至所述当前缓冲文件;若所述当前缓冲文件的剩余可用大小不能够存放所述响应消息,新建另一缓冲文件,并将所述另一缓冲文件设定为所述当前缓冲文件,并将所述响应消息存放至重新设定的所述当前缓冲文件。3.根据权利要求1所述的响应消息的缓冲方法,其特征在于,所述判断预设的内存缓冲区的剩余空间是否能够存放所述响应消息,具体包括:获取所述内存缓冲区中的当前缓冲块;判断所述当前缓冲块的剩余空间是否能够存放所述响应消息;若所述当前缓冲块的剩余空间不能够存放所述响应消息,判断所述内存缓冲区中是否存在另一缓冲块,其中所述另一缓冲块的剩余空间能够存放所述响应消息;若不存在所述另一缓冲块,则判定所述内存缓冲区的剩余空间不能够存放所述响应消息。4.根据权利要求3所述的响应消息的缓冲方法,其特征在于,若所述当前缓冲块的剩余空间能够存放所述响应消息或存在所述另一缓冲块,则判定所述内存缓冲区的剩余空间能够存放所述响应消息;所述判定所述内存缓冲区的剩余空间能够存放所述响应消息之后,还包括:将所述响应消息存放至所述内存缓冲区。5.根据权利要求1所述的响应消息的缓冲方法,其特征在于,所述将所述响应消息存放至所述磁盘缓冲区之后,还包括:获取所述响应消息的指针,并将所述响应消息的...

【专利技术属性】
技术研发人员:周龙飞
申请(专利权)人:网宿科技股份有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1