CN109040286A - 一种基于内存数据库的客户端在线状态维护方法 - Google Patents

一种基于内存数据库的客户端在线状态维护方法 Download PDF

Info

Publication number
CN109040286A
CN109040286A CN201810974169.5A CN201810974169A CN109040286A CN 109040286 A CN109040286 A CN 109040286A CN 201810974169 A CN201810974169 A CN 201810974169A CN 109040286 A CN109040286 A CN 109040286A
Authority
CN
China
Prior art keywords
client
server
memory
database
account
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.)
Granted
Application number
CN201810974169.5A
Other languages
English (en)
Other versions
CN109040286B (zh
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.)
Chongqing Golden Intelligent Wearable Technology Research Institute Co Ltd
Original Assignee
Chongqing Golden Intelligent Wearable Technology Research Institute 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 Chongqing Golden Intelligent Wearable Technology Research Institute Co Ltd filed Critical Chongqing Golden Intelligent Wearable Technology Research Institute Co Ltd
Priority to CN201810974169.5A priority Critical patent/CN109040286B/zh
Publication of CN109040286A publication Critical patent/CN109040286A/zh
Application granted granted Critical
Publication of CN109040286B publication Critical patent/CN109040286B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/141Setup of application sessions

Abstract

本发明公开了一种基于内存数据库的客户端在线状态维护方法,它包括:建立内存数据库,用于存储客户端的在线数据信息;客户端与服务端建立连接,服务端获取客户端的在线状态,并更新数据库;通过内存数据库提供的查询语句查询和/或统计在线状态。本发明采用分布式服务器和内存数据库,在确保了系统安全性的前提之下,提高了系统的效率。对于客户端的在线状态先在自身服务器上查询,若没有则查询其他所有服务器,最终更新到内存数据库中。

Description

一种基于内存数据库的客户端在线状态维护方法
技术领域
本发明涉及内存数据库技术领域,特别是一种基于内存数据库的客户端在线状态维护方法。
背景技术
有多个客户端连着同一个服务器。服务器和客户端之间需要互相知道彼此的连接状态。比如在某一时刻,服务器需要知道当前有多少个客户端正在和其通信;某一个时刻,某个客户端需要知道自己是否和服务器保持连接。如果在某一时刻,一个客户端关闭了,服务端应能及时感觉到;同样,如果服务端被关闭,所有的客户端应能及时感觉到,并作出一些反应。直观上的反应就是在服务端维护一个在线列表。当服务端的监听器监听到一个连接,就把该连接对应的客户端信息加入这个在线列表。这样就完成了对上线状况的记录。但下一个问题是如何让服务器知道客户端的离线状况呢?我们可能会想到,让客户端在关闭前发送一个消息到服务端,服务端收到消息后就把客户端置为离线状态。但是,在更多情况下,客户端并不是这么“友好”地关闭的。应用程序崩溃、网络连接被重置、机器死机等情况下,客户端来不及发送“离线通知”给服务端。这时,需要有一套机制,能让服务端和客户端彼此对对方的在线状态清楚了解。于是出现了心跳机制。何谓“心跳”?心跳就是指“活着”的客户端或服务端每隔一定的时间就互相发送接收一个消息,告诉对方自己“活着”。当客户端或服务端超过一定的时间间隔尚未收到对方的“心跳”消息,就认为对方“死了”。这就是“心跳机制”的核心思想。
在线状态:是指客户端和云通信服务器保持有顺畅的TCP网络连接,客户端可以发消息给云通信服务端,服务端可以把消息推送给客户端。App启动后,客户端和云通信建立TCP长连接,云通信服务保存客户端的在线信息,如客户端的网络链路,客户端的平台版本等。App长连接建立成功后,在运行过程中,IMSDK会定时发送心跳来维持当前的在线状态。iOS客户端和云通信的TCP链路断开后,还可以收到苹果推送的消息,但是还是处于不在线的状态。
上线(TCP建立):App客户端和云通信服务建立TCP长链接的动作
下线(TCP断开):App客户端退出当前帐号或者是云通信服务器检测到App客户端的TCP长连接断开。依靠客户端与服务器端的TCP Fin包作为监测手段。
超时(TCP断开):App客户端因为网络忽然断开或者杀后台进程,云通信服务器无法及时感知TCP连接断开,服务器依赖心跳包超时判断,当客户端和服务器之间持续300秒没有心跳包时,云通信服务器认为该用户网络异常(Android版本较多出现此情况),会当成TCP链路断开来处理。
目前构客户端在线状态维护有以下两种:
1、采用集中式服务器和磁盘数据库:
缺点为:采用集中式服务器架构安全性不高,若服务器出现问题则影响范围比较大,同时采用磁盘数据库,读写速度较慢。
2、采用分布式服务器和内存数据库:
缺点为:分布式服架构下需要配置多台服务器,成本较高,同时内存数据库相比于磁盘数据库安全性较低。
发明内容
有鉴于现有技术的上述缺陷,本发明的目的就是提供一种基于内存数据库的客户端在线状态维护方法,它采用分布式服务器和内存数据库,在确保了系统安全性的前提之下,提高了系统的效率。对于客户端的在线状态先在自身服务器上查询,若没有则查询其他所有服务器,最终更新到内存数据库中。
本发明的目的是通过这样的技术方案实现的,一种基于内存数据库的客户端在线状态维护方法,它包括有:
S1:建立内存数据库,用于存储客户端的在线数据信息;
S2:客户端与服务端建立连接,服务端获取客户端的在线状态,并更新数据库;
S3:服务端可以通过内存数据库提供的查询语句查询和/或统计在线状态。
进一步,步骤S2中所述客户端与服务端建立连接,获取在线状态并更新数据库包括有:
S21:若客户端账号为第一次登录,则进行如下步骤:
S211:如果账号登录到业务服务器A,则服务器程序A获取客户端在线状态;
S212:将客户端信息保存到内存数据库;
S22:若客户端账号在另外的终端登录,则进行如下步骤:
S221:若客户端账号已经在第一终端登录到业务服务器A,然后用第二终端登录该账号到业务服务器B;
S222:服务器程序B判断此账号是否已在业务服务器B上登录;
S223:若已经登录,则踢出上次的登录并发出通知,然后更新客户端信息;反之,进入步骤S224:
S224:查询内存数据库,若存该账号且处于在线状态,则通知服务器A该账号需要踢出,在服务器A上登录该账号,并更新客户端信息;若不在线,则直接保存客户端信息到内存数据库。
进一步,所述步骤S3中所述服务端查询与统计的程序可以直接通过内存数据库提供的查询语句查询和/或统计在线状态。
进一步,所述步骤S1中还包括有将将数据存储在内存数据库中。
进一步,所述客户端可为手机和/或手表。
由于采用了上述技术方案,本发明具有如下的优点:本发明采用分布式服务器和内存数据库,在确保了系统安全性的前提之下,提高了系统的效率。对于客户端的在线状态先在自身服务器上查询,若没有则查询其他所有服务器,最终更新到内存数据库中。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。
附图说明
本发明的附图说明如下:
图1为基于内存数据库的客户端在线状态维护方法的流程示意图。
图2为基于内存数据库的客户端工作状态连接示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
实施例1,如图1和图2所示;一种基于内存数据库的客户端在线状态维护方法,它包括有:
S1:建立内存数据库,用于存储客户端的在线数据信息;
S2:客户端与服务端建立连接,服务端获取客户端的在线状态,并更新数据库;
S3:服务端可以通过内存数据库提供的查询语句查询和/或统计在线状态。
步骤S2中所述客户端与服务端建立连接,获取在线状态并更新数据库包括有:
S21:若客户端账号为第一次登录,则进行如下步骤:
S211:如果账号登录到业务服务器A,则服务器程序A获取客户端在线状态;
S212:将客户端信息保存到内存数据库;
S22:若客户端账号在另外的终端登录,则进行如下步骤:
S221:若客户端账号已经在第一终端登录到业务服务器A,然后用第二终端登录该账号到业务服务器B;
S222:服务器程序B判断此账号是否已在业务服务器B上登录;
S223:若已经登录,则踢出上次的登录并发出通知,然后更新客户端信息;反之,进入步骤S224:
S224:查询内存数据库,若存该账号且处于在线状态,则通知服务器A该账号需要踢出,在服务器A上登录该账号,并更新客户端信息;若不在线,则直接保存客户端信息到内存数据库。
所述步骤S3中所述服务端查询与统计的程序可以直接通过内存数据库提供的查询语句查询和/或统计在线状态。
所述步骤S1中还包括有将将数据存储在内存数据库中。
所述客户端可为手机和/或手表。
由于采用了上述技术方案,本发明采用分布式服务器和内存数据库,在确保了系统安全性的前提之下,提高了系统的效率。对于客户端的在线状态先在自身服务器上查询,若没有则查询其他所有服务器,最终更新到内存数据库中。
实施例2,如图1和图2所示;一种基于内存数据库的客户端在线状态维护方法,它包括有:
1)建立数据数据库,用于存储客户端的在线数据信息;
2)客户端与服务端建立连接,服务端获取客户端的在线状态,并更新数据库;
3)服务端可以通过内存数据库提供的查询语句查询/统计在线状态。
所述的内存数据库,将数据存储在内存中直接操作,相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。
步骤2)中所述客户端与服务端建立连接,获取在线状态并更新数据库:客户端登录大致可分为两种情:
1)若客户端账号为第一次登录:
如果账号登录到业务服务器A,那么服务器程序A获取客户端在线状态,同时将客户端信息保存到内存数据库。
2)若客户端账号在另外的终端登录:
若客户端账号已经在终端1登录到业务服务器A,然后用终端2登录该账号到业务服务器B,此时服务器程序B则会判断此账号是否已在自己的服务器(即业务服务器B)上登录,若是则踢出上次的登录并发出通知,然后更新客户端信息到自己的内存数据库;否则,查询内存数据库,若存该账号且处于在线状态(例如已在服务器A上登录),则通知服务器A该账号需要踢出,在自己的服务器上登录该账号,并更新客户端信息到内存数据库。若不在线,则直接保存客户端信息到内存数据库。
步骤3)中所述服务端查询与统计的程序可以直接通过内存数据库提供的查询语句查询/统计在线状态。直接通过查询语句查询/统计在线状态,使用方便,且内存数据库数据读写速度远大于磁盘。
本发明的客户端在线状态维护是通过这样实现的,所述方法包括以下步骤:
1.若客户端账号第一次登录:
(1)账号登录到业务服务器A
(2)服务器程序A将客户端信息保存到内存数据库
2.客户端账号在另外的终端登录:
(1)账号已登录到服务器A
(2)账号通过另一个终端登录到业务服务器B
(3)服务器程序B判断此账号是否已在自己的服务器上登录,
(4)若是则踢出老的的登录并作出通知,然后更新客户端信息到内存数据库;
(5)否则,查询内存数据库,若存该账号且处于在线状态(例如已在A上登录),则通知服务器A账号需要踢出,并更新客户端信息到内存数据库。
(6)若不在线,则直接保存客户端信息到内存数据库。
由于采用了上述技术方案,本发明采用分布式服务器和内存数据库,在确保了系统安全性的前提之下,提高了系统的效率。对于客户端的在线状态先在自身服务器上查询,若没有则查询其他所有服务器,最终更新到内存数据库中。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

Claims (5)

1.一种基于内存数据库的客户端在线状态维护方法,其特征在于,所述方法步骤如下:
S1:建立内存数据库,用于存储客户端的在线数据信息;
S2:客户端与服务端建立连接,服务端获取客户端的在线状态,并更新数据库;
S3:通过内存数据库提供的查询语句查询和/或统计在线状态。
2.如权利要求1所述的基于内存数据库的客户端在线状态维护方法,其特征在于,步骤S2中所述客户端与服务端建立连接,获取在线状态并更新数据库包括有:
S21:若客户端账号为第一次登录,则进行如下步骤:
S211:如果账号登录到业务服务器A,则服务器程序A获取客户端在线状态;
S212:将客户端信息保存到内存数据库;
S22:若客户端账号在另外的终端登录,则进行如下步骤:
S221:若客户端账号已经在第一终端登录到业务服务器A,然后用第二终端登录该账号到业务服务器B;
S222:服务器程序B判断此账号是否已在业务服务器B上登录;
S223:若已经登录,则踢出上次的登录并发出通知,然后更新客户端信息;反之,进入步骤S224:
S224:查询内存数据库,若存该账号且处于在线状态,则通知服务器A该账号需要踢出,在服务器A上登录该账号,并更新客户端信息;若不在线,则直接保存客户端信息到内存数据库。
3.如权利要求1所述的基于内存数据库的客户端在线状态维护方法,其特征在于,所述步骤S3中所述服务端查询与统计的程序可以直接通过内存数据库提供的查询语句查询和/或统计在线状态。
4.如权利要求1所述的基于内存数据库的客户端在线状态维护方法,其特征在于,所述步骤S1中还包括有将将数据存储在内存数据库中。
5.如权利要求1所述的基于内存数据库的客户端在线状态维护方法,其特征在于,所述客户端可为手机或手表。
CN201810974169.5A 2018-08-24 2018-08-24 一种基于内存数据库的客户端在线状态维护方法 Active CN109040286B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810974169.5A CN109040286B (zh) 2018-08-24 2018-08-24 一种基于内存数据库的客户端在线状态维护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810974169.5A CN109040286B (zh) 2018-08-24 2018-08-24 一种基于内存数据库的客户端在线状态维护方法

Publications (2)

Publication Number Publication Date
CN109040286A true CN109040286A (zh) 2018-12-18
CN109040286B CN109040286B (zh) 2021-01-26

Family

ID=64628400

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810974169.5A Active CN109040286B (zh) 2018-08-24 2018-08-24 一种基于内存数据库的客户端在线状态维护方法

Country Status (1)

Country Link
CN (1) CN109040286B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076329A (zh) * 2020-01-03 2021-07-06 上海亲平信息科技股份有限公司 一种内存数据库
CN113132487A (zh) * 2021-04-21 2021-07-16 深圳市乐唯科技开发有限公司 一种精简的分布式长连接的数据传输方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101872356A (zh) * 2010-05-31 2010-10-27 中兴通讯股份有限公司 一种内存数据库处理性能的方法与系统
CN103226612A (zh) * 2013-05-08 2013-07-31 华北计算技术研究所 一种基于内存数据库的内容管理系统
CN103678665A (zh) * 2013-12-24 2014-03-26 焦点科技股份有限公司 一种基于数据仓库的异构大数据整合方法和系统
US20140258212A1 (en) * 2013-03-06 2014-09-11 Sap Ag Dynamic in-memory database search
CN104869440A (zh) * 2015-05-29 2015-08-26 广州易方信息科技有限公司 在线视频云平台实时统计视频观看数据的方法及系统
US20170199914A1 (en) * 2013-12-02 2017-07-13 Qbase, LLC Search suggestions of related entities based on co-occurrence and/or fuzzy-score matching
CN107317831A (zh) * 2016-04-27 2017-11-03 上海炬宏信息技术有限公司 基于内存数据库的网站访问方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101872356A (zh) * 2010-05-31 2010-10-27 中兴通讯股份有限公司 一种内存数据库处理性能的方法与系统
US20140258212A1 (en) * 2013-03-06 2014-09-11 Sap Ag Dynamic in-memory database search
CN103226612A (zh) * 2013-05-08 2013-07-31 华北计算技术研究所 一种基于内存数据库的内容管理系统
US20170199914A1 (en) * 2013-12-02 2017-07-13 Qbase, LLC Search suggestions of related entities based on co-occurrence and/or fuzzy-score matching
CN103678665A (zh) * 2013-12-24 2014-03-26 焦点科技股份有限公司 一种基于数据仓库的异构大数据整合方法和系统
CN104869440A (zh) * 2015-05-29 2015-08-26 广州易方信息科技有限公司 在线视频云平台实时统计视频观看数据的方法及系统
CN107317831A (zh) * 2016-04-27 2017-11-03 上海炬宏信息技术有限公司 基于内存数据库的网站访问方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076329A (zh) * 2020-01-03 2021-07-06 上海亲平信息科技股份有限公司 一种内存数据库
CN113132487A (zh) * 2021-04-21 2021-07-16 深圳市乐唯科技开发有限公司 一种精简的分布式长连接的数据传输方法及系统

Also Published As

Publication number Publication date
CN109040286B (zh) 2021-01-26

Similar Documents

Publication Publication Date Title
US11609560B2 (en) Method and system for monitoring rail vehicle
CN104301413B (zh) 面向云数据库的一种Oracle分布式实时监控方法
CN102739802A (zh) 面向业务应用的it集中运维分析系统
US20080244077A1 (en) Methods for auditing peer-to-peer communications in remote device monitoring system and systems thereof
CN102857371B (zh) 一种面向集群系统的动态配置管理方法
WO2015090241A1 (zh) 监控业务运行数据入库的方法和相关设备及系统
CN103067230A (zh) 一种通过植入监控代码实现对http服务监控的方法
CN112346936A (zh) 应用故障根因定位方法及系统
CN103309790A (zh) 移动终端监控方法和装置
WO2017016084A1 (zh) 告警信息通知方法、装置及告警信息过滤设备
CN105721389B (zh) 多终端设备互通数据处理和服务响应方法、装置
CN109039724A (zh) 日志上传方法和装置
CN109040286A (zh) 一种基于内存数据库的客户端在线状态维护方法
CN111782672B (zh) 多领域数据管理方法及相关装置
CN112141832A (zh) 一种电梯物联网可视化运营平台
CN108880885A (zh) 一种报文处理方法及装置
CN104539449B (zh) 一种故障信息处理方法与相关装置
CN106874371A (zh) 一种数据处理方法及装置
CN114172921A (zh) 一种调度录音系统的日志审计方法及装置
CN113411209A (zh) 一种分布式的密码服务全链路检测系统及方法
CN112291264A (zh) 一种安全控制的方法和装置
US11196686B2 (en) Chatbot context setting using packet capture
CN104883275B (zh) 一种通信设备的日志缓存方法及系统
CN115080363B (zh) 一种基于业务日志的系统容量评估方法及装置
CN108540546B (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
GR01 Patent grant
GR01 Patent grant