CN113067848B - 一种通话记录同步方法、系统及电子设备 - Google Patents

一种通话记录同步方法、系统及电子设备 Download PDF

Info

Publication number
CN113067848B
CN113067848B CN202110160112.3A CN202110160112A CN113067848B CN 113067848 B CN113067848 B CN 113067848B CN 202110160112 A CN202110160112 A CN 202110160112A CN 113067848 B CN113067848 B CN 113067848B
Authority
CN
China
Prior art keywords
version number
server
terminal
distributed version
call record
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
Application number
CN202110160112.3A
Other languages
English (en)
Other versions
CN113067848A (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.)
Xiamen Yealink Network Technology Co Ltd
Original Assignee
Xiamen Yealink Network Technology 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 Xiamen Yealink Network Technology Co Ltd filed Critical Xiamen Yealink Network Technology Co Ltd
Priority to CN202110160112.3A priority Critical patent/CN113067848B/zh
Publication of CN113067848A publication Critical patent/CN113067848A/zh
Application granted granted Critical
Publication of CN113067848B publication Critical patent/CN113067848B/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
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/26Devices for calling a subscriber
    • H04M1/27Devices whereby a plurality of signals may be stored simultaneously
    • H04M1/274Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc
    • H04M1/2745Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc using static electronic memories, e.g. chips
    • H04M1/2753Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc using static electronic memories, e.g. chips providing data content
    • H04M1/2757Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc using static electronic memories, e.g. chips providing data content by data transmission, e.g. downloading

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了一种通话记录同步方法、系统及电子设备,涉及分布式系统技术领域。所述方法包括:终端在服务器上产生通话记录;服务器从数据库查询终端对应账号当前的分布式版本号;服务器逐个节点判断获取最新节点版本号以构建最新分布式版本号;服务器将最新分布式版本号和最新增量通话记录推送给终端。本发明通过设计分布式版本号,无需有单点的通话记录版本号分配中心,可以多账号多终端在分布式架构的不同中心不同服务器上高并发的产生通话记录,再借助数据可同步异步修正的方式同步到各个终端,从而不会有单点瓶颈。

Description

一种通话记录同步方法、系统及电子设备
技术领域
本发明涉及分布式系统技术领域,尤其涉及一种通话记录同步方法、系统及电子设备。
背景技术
在分布式架构下基于sip的pbx服务器(基于sip协议的pbx服务器,简称为spbx服务器,负责处理sip信令)集群中,一般有一个全部的账号通话记录版本号分配中心,用于分配各个账号的连续版本号。终端在某一spbx服务器上产生通话记录时,spbx服务器需要向版本号分配中心申请新版本号,并将新通话记录内容和版本号推送给终端,终端更新接收到通话记录内容和版本号。当终端下线重新登录时,可以使用本地存储的版本号,向所登录的spbx服务器拉取未同步到终端的通话记录。
但是在现有技术中,单通话记录版本号分配中心,容易出现单点故障,在该分配中心故障时,无法提供分配版本号id的服务。此外,在分布式spbx服务器集群中,不同spbx服务器产生较高并发量的通话记录时,单点的版本号分配中心,容易成为性能瓶颈。
发明内容
本发明目的在于,提供一种通话记录同步方法、系统及电子设备,通过设计分布式版本号,无需有单点的通话记录版本号分配中心,以解决上述背景技术中存在的问题。
为实现上述目的,第一方面,本发明提供一种通话记录同步方法,基于分布式架构,包括:任一终端在任一服务器产生通话记录后,所述服务器将产生通话记录前的更新前分布式版本号、产生通话记录后的更新后分布式版本号以及本次通话记录增量推送给账号对应的终端;终端接收到服务器推送的所述更新前分布式版本号、所述更新后分布式版本号及所述通话记录增量后,终端对比本地分布式版本号与所述更新前分布式版本号是否一致;若一致,终端应用通话记录增量并将本地分布式版本号更新为更新后分布式版本号;若不一致,终端向服务器发送本地分布式版本号并发送数据拉取请求以进行数据拉取;所述数据拉取包括:服务器将账号当前存储在数据库中的分布式版本号与终端上传的本地分布式版本号进行比对,以构建最新分布式版本号和最新增量通话记录;服务器将最新分布式版本号和最新增量通话记录推送给终端。
优选地,当对比本地分布式版本号与更新前分布式版本号不一致时,终端进一步对比本地分布式版本号与所述更新后分布式版本号是否一致;若一致,则不作操作,同步结束;若不一致,终端向服务器发送本地分布式版本号并发送数据拉取请求以进行数据拉取。
优选地,所述服务器将账号当前存储在数据库中的分布式版本号与终端上传的本地分布式版本号进行比对,以构建最新分布式版本号和最新增量通话记录,包括:所述服务器从数据库查询所述终端对应账号当前的分布式版本号;分布式版本号包括若干节点版本号;所述服务器逐个节点判断在本地分布式版本号中对应的第一节点版本号是否大于账号当前的分布式版本号中对应的第二节点版本号;若是,选择第一节点版本号作为最新节点版本号;若否,选择第二节点版本号作为最新节点版本号,并从数据库查询大于第一节点版本号且小于或等于第二节点版本号范围内的通话记录作为最新增量通话记录;所述服务器将所有最新节点版本号合并为最新分布式版本号。
优选地,还包括在终端首次登陆服务器时,终端向服务器发送本地分布式版本号并发送数据拉取请求以进行所述数据拉取过程。
优选地,每个服务器都有一个对应的数据库,不同服务器之间的数据同步通过数据库之间的数据同步进行。
优选地,还包括:服务器接收到终端上报的本地分布式版本号后,将对应账号标记为非数据同步延迟状态;所述服务器从数据库查询所述终端对应账号当前的分布式版本号,当本地分布式版本号中任一节点的版本号大于账号当前的分布式版本号中对应节点的版本号时,将账号标记为数据同步延迟状态。
优选地,同一账户通过第一终端和第二终端分别登录到第一服务器和第二服务器,所述第一服务器连接所述第一数据库,所述第二服务器连接第二数据库,所述方法包括:所述第一终端在所述第一服务器产生通话记录时,所述第一服务器将当前通话记录及节点版本号分别记录为新增通话记录和更新节点版本号;所述第一服务器将所述新增通话记录及所述更新节点版本号发送至所述第一数据库;所述第一数据库与所述第二数据库进行数据同步,所述第二服务器从所述第二数据库中获得所述新增通话记录及所述更新节点版本号,并根据所述更新节点版本号生成更新分布式版本号;所述第二服务器推送所述新增通话记录及所述更新分布式版本号至所述第二终端,以使所述第二终端完成本地分布式版本号的更新,并应用所述新增通话记录。
优选地,绑定某一账户的第一终端登录在第一服务器产生通话记录后切换到第二服务器,所述方法还包括:所述第一终端在所述第一服务器产生通话记录时,所述第一服务器构建第一通话记录和第一节点版本号,并更新分布式版本号为第一分布式版本号;所述第一服务器将所述第一通话记录和所述第一分布式版本号推送给所述第一终端;所述第一终端比对接收的所述第一更新前分布式版本号与所述第一终端当前记录的分布式版本号一致时,应用所述第一通话记录,并更新所述当前记录的本地分布式版本号为所述第一更新后分布式版本号;已更新当前记录的本地分布式版本号的第一终端从所述第一服务器切换到所述第二服务器,并在所述第二服务器产生通话记录后,所述第二服务器记录的通话记录及分布式版本号分别为第二通话记录和第二更新后分布式版本号;所述第二服务器将产生通话记录前的更新前分布式版本号、所述第二更新后分布式版本号和所述第二通话记录推送给所述第一终端;在所述第一终端比对所述更新前分布式版本号与所述第一终端当前记录的分布式版本号不一致时,所述第二服务器对所述第一终端发送的数据拉取请求以进行所述数据拉取过程。
第二方面,本发明还提供一种通话记录同步方法,基于分布式架构,应用于服务器包括:
终端在服务器上产生通话记录后,将产生通话记录前的更新前分布式版本号、产生通话记录后的更新后分布式版本号以及本次通话记录增量推送给终端;
当终端对比本地分布式版本号与所述更新前分布式版本号不一致时,接收数据拉取请求以进行数据拉取;
所述数据拉取包括:将账号当前存储在数据库中的分布式版本号与终端上传的本地分布式版本号进行比对,以构建最新分布式版本号和最新增量通话记录;将最新分布式版本号和最新增量通话记录推送给终端。
第三方面,本发明还提供一种通话记录同步方法,基于分布式架构,应用于终端包括:接收到服务器推送的产生通话记录前的更新前分布式版本号、产生通话记录后的更新后分布式版本号以及本次通话记录增量后,对比本地分布式版本号与所述更新前分布式版本号是否一致;若一致,应用通话记录增量并将本地分布式版本号更新为更新后分布式版本号;若不一致,向服务器发送本地分布式版本号并发送数据拉取请求以进行数据拉取,得到服务器构建的最新分布式版本号和最新增量通话记录。
第四方面,本发明还提供一种通话记录同步系统,该通话记录同步系统用于执行本申请第一方面所示地通话记录同步方法对应地操作,所述通话记录同步系统包括:服务器、终端和数据库;所述服务器,用于获取所述终端发送的数据拉取请求,推送最新分布式版本号和增量通话记录给终端,并将所述增量通话记录和同步后所述终端的本地分布式版本号发送给数据库;所述终端,用于接收服务器推送的最新通话记录增量和最新分布式版本号,并同步所述终端的本地分布式版本号和通话记录;所述数据库,用于存储通话记录和分布式版本号。
本发明的实施例,具有如下有益效果:
本发明公开了一种通话记录同步方法,包括:终端在服务器上产生通话记录;分布式版本号包括若干节点版本号;服务器从数据库查询终端对应账号当前的分布式版本号;服务器逐个节点判断获取最新节点版本号以构建最新分布式版本号;服务器将最新分布式版本号和最新增量通话记录推送给终端。相较于现有技术,本发明通过设计分布式版本号,无需有单点的通话记录版本号分配中心,可以多账号多终端在分布式架构的不同中心不同服务器上高并发的产生通话记录,再借助数据可同步异步修正的方式同步到各个终端,从而不会有单点瓶颈;不会存在版本分配中心故障时无法产生和推送通话记录到终端的风险;任一服务器故障,终端可以重新在其他服务器上重新登录并产生通话记录;故障的服务器在故障时尚未提交的通话记录,也可以在故障恢复后同步到对应终端。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明某一实施例提供的分布式架构示意图;
图2是本发明第一实施例提供的一种通话记录同步方法的流程示意图;
图3是本发明第二实施例提供的一种通话记录同步方法的流程示意图;
图4是本发明第三实施例提供的一种通话记录同步方法的流程示意图;
图5是本发明第四实施例提供的一种通话记录同步方法的流程示意图;
图6是本发明某一实施例提供的一种通话记录同步方法的信令流程示意图;
图7是本发明第五实施例提供的一种通话记录同步方法的流程示意图;
图8是本发明第六实施例提供的一种通话记录同步方法的流程示意图;
图9是本发明某一实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
为了便于本领域技术人员理解本发明实施例,以下对本发明实施例的相关技术内容进行说明。
基于sip协议的pbx服务器,简称为spbx服务器,负责处理sip信令。
pbx(Private Branch Exchange,用户级交换机)即公司内部使用的电话业务网络,系统内部分机用户分享一定数量的外线,本发明中PBX为使用软件实现了原先pbx的业务逻辑。
SIP(Session Initiation Protocol,会话初始协议)是由IETF(InternetEngineering Task Force,因特网工程任务组)制定的多媒体通信协议。它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。SIP是一种源于互联网的IP语音会话控制协议,具有灵活、易于实现、便于扩展等特点。
本发明的分布式架构,如图1所示,(1)终端,为sip话机终端设备或具有sip话机终端功能的桌面程序或手机应用。(2)spbx服务器,处理sip信令和相关媒体,具有产生和下发通话记录到终端的功能。(3)DB,在中心部署的集群内数据库,用于存储通话记录,并支持跨中心DB间数据同步,同步具有一定的延迟。
DB(data base,数据库)是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。
通话记录,是同一个账号不同设备登录在不同spbx服务器上产生的有时间顺序消息记录。在支撑较大规模的账号(和终端)的分布式spbx服务器集群中,需要保证在不同spbx服务器登录的多个终端产生的全部通话记录,完整的传输到各个终端,并在终端保持有序。包括两种场景:(1)一个账号多个终端设备在不同spbx服务器同时登录,则要求任一终端产生的通话记录,推送到该账号全部终端;(2)一个终端登录到任一spbx服务器,需要传输该账号全部通话记录到终端。
其中,一个账号的多个终端可以注册中心的spbx服务器上,并在各自注册登录的spbx服务器上产生通话记录。一个账号在同一台服务器上产生的通话记录版本号是一种连续的64位无符号整数。一个账号的全局唯一版本号由其登录并产生过通话记录的各个节点的64位版本号组成,即分布式版本号,具体格式为:
<spbx服务器ip>:<64位节点版本号>[,<spbx服务器ip>:<64位节点版本号>]*
例如:绑定账号C的一个终端先在sip服务器A上产生1条通话记录,则在sip服务器A的节点版本号为“1”。绑定账号C的另外一个终端在sip服务器B上产生1条通话记录,则在sip服务器B的节点版本号为“1”。则账号C的分布式版本号为“A:1,B:1”。
账号的分布式版本号,<spbx服务器ip>:<64位节点版本号>字段较多时,还支持一种压缩格式:
<压缩截止时戳>_<spbx服务器ip>:<64位节点版本号>[,<spbx服务器ip>:<64位节点版本号>]*_<压缩截止前md5sum>
表示在正常分布式版本号中,在<压缩截止时戳>前“<spbx服务器ip>:<64位节点版本号>”部分计算md5值为<压缩截止前md5sum>,在<压缩截止时戳>后为正常格式。适合压缩历史登录并产生通话记录但是近期未产生通话记录的节点版本号。
本申请通过设计分布式版本号,无需有单点的通话记录版本号分配中心。从而解决上述单点故障和性能瓶颈两大缺点。分布式版本号是一个各个spbx服务器版本号的合并字符串,即每个spbx服务器有各自的连续版本号,再合并成一个合并字符串。
下面,将通过几个具体的实施例对本发明实施例提供的通话记录同步方法进行详细介绍和说明。
请参阅图2,图2是本发明第一实施例提供的一种通话记录同步方法的流程示意图。本实施例的通话记录同步方法基于分布式架构,具体包括:
步骤S110,任一终端在任一服务器产生通话记录后,服务器将产生通话记录前的更新前分布式版本号、产生通话记录后的更新后分布式版本号以及本次通话记录增量推送给账号对应的终端。
步骤S120,终端接收到服务器推送的更新前分布式版本号、更新后分布式版本号及通话记录增量后,终端对比本地分布式版本号与更新前分布式版本号是否一致。其中,对比本地分布式版本号与更新前分布式版本号是否一致,若一致,则执行步骤S130;若不一致,则执行步骤S131。
步骤S130,终端应用通话记录增量并将本地分布式版本号更新为更新后分布式版本号。
步骤S131,终端向服务器发送本地分布式版本号并发送数据拉取请求以进行数据拉取。其中,数据拉取包括:服务器将账号当前存储在数据库中的分布式版本号与终端上传的本地分布式版本号进行比对,以构建最新分布式版本号和最新增量通话记录;服务器将最新分布式版本号和最新增量通话记录推送给终端。其中,数据拉取过程包括:服务器将账号当前存储在数据库中的分布式版本号与终端上传的本地分布式版本号进行比对,以构建最新分布式版本号和最新增量通话记录;服务器将最新分布式版本号和最新增量通话记录推送给终端。
优选地,当对比本地分布式版本号与更新前分布式版本号不一致时,终端进一步对比本地分布式版本号与所述更新后分布式版本号是否一致;若一致,则不作操作,同步结束;若不一致,终端向服务器发送本地分布式版本号并发送数据拉取请求以进行数据拉取。
请参阅图3,图3是本发明第二实施例提供的一种通话记录同步方法的流程示意图。在本实施例中,数据拉取过程具体包括:
步骤S141,服务器从数据库查询终端对应账号当前的分布式版本号;分布式版本号包括若干节点版本号。
步骤S142,服务器逐个节点判断在本地分布式版本号中对应的第一节点版本号是否大于账号当前的分布式版本号中对应的第二节点版本号。若第一节点版本号大于第二节点版本号,则执行步骤S1421;若第二节点版本号大于第一节点版本号,则执行步骤S1422。判断完所有节点版本号后,执行步骤S143。
步骤S1421,选择第一节点版本号作为最新节点版本号。
步骤S1422,选择第二节点版本号作为最新节点版本号,并从数据库查询大于第一节点版本号且小于或等于第二节点版本号范围内的通话记录作为最新增量通话记录。
步骤S143,服务器将所有最新节点版本号合并为最新分布式版本号,并将最新分布式版本号和最新增量通话记录推送给终端。
此外,在终端首次登陆服务器时,终端向服务器发送本地分布式版本号并发送数据拉取请求以进行数据拉取过程。
例如,请参阅图4,图4是本发明第三实施例提供的一种通话记录同步方法的流程示意图,在本发明分布式架构中,绑定有账号C的终端01(简称终端c01),登录服务器前记录在终端c01上分布式版本号为(B:1),终端首次登录一个spbx服务器同步通话记录的方法包括:
1.终端c01登录到spbx服务器A(简称服务器A),并拉取通话记录,终端c01上报给服务器A的分布式版本号为(B:1)。
2.服务器A在本中心的DB查询账号C的分布式版本(A:2,B:1)和上报的(B:1)对比,得到并构造增量的通话记录内容([A:1,A:2])。
3.服务器A推送更新前分布式版本(B:1),更新后分布式版本(A:2,B:1)以及通话记录内容增量([A:1,A:2])给终端c01。
4.终端c01收到推送更新后,使用更新前分布式版本和本地记录分布式版本号(B:1)比较一致,并应用通话记录增量,最后将本地分布式版本号更新为(A:2,B:1)。
在一示例中,同一账户通过第一终端和第二终端分别登录到第一服务器和第二服务器,第一服务器连接所述第一数据库,第二服务器连接第二数据库,本实施例提供的通话记录同步方法包括:
第一终端在第一服务器产生通话记录时,第一服务器将当前通话记录及节点版本号分别记录为新增通话记录和更新节点版本号;第一服务器将新增通话记录及更新节点版本号发送至第一数据库;
第一数据库与第二数据库进行数据同步,第二服务器从第二数据库中获得新增通话记录及更新节点版本号,并在更新前分布式版本号的基础上应用更新节点版本号,生成更新后分布式版本号;
第二服务器推送更新前分布式版本号、新增通话记录及更新后分布式版本号至第二终端;
第二终端收到推送更新后,使用更新前分布式版本号和本地记录分布式版本号比较一致,应用新增通话记录,并更新本地分布式版本号为更新后分布式版本号。
例如,请参阅图5,图5是本发明第四实施例提供的一种通话记录同步方法的流程示意图,本发明分布式架构中,账号C同时绑定了终端01和终端02两个设备,并在终端01和终端02均记录分布式版本号(B:1),终端01在spbx服务器A上登录,终端02在spbx服务B上登录,推送通话记录到不同终端流程如下:
1.终端01登录在服务器A上并产生1条通话记录。
2.终端02登录在服务器B上。
3.服务器A将产生的通话记录内容([A:0,A:1])以及节点版本号(A:1)保存在DB中。
4.服务器A推送更新前分布式版本号(B:1),更新后版本号(A:1,B:1),以及通话记录([A:0,A:1])给终端01。
5.通过中心间DB数据同步,将服务器A所在中心的DB中的数据同步到服务器B所在中心的DB。
6.服务器B接收到节点版本号(A:1)和通话记录内容([A:0,A:1])后,推送更新前分布式版本号(B:1),更新后分布式版本号(A:1,B:1),以及通话记录([A:0,A:1])给终端02。其中,上述更新前分布式版本号(B:1)为缩写形式,实际为(A:0,B:1)。但是因为A:0代表在服务器A上未产生过通话记录,所以可以省略,以减少分布式版本号长度。
7.终端02收到服务器B的推送更新后,使用更新前分布式版本和本地记录分布式版本号(B:1)比较一致,并应用通话记录增量,最后将本地分布式版本号更新为(A:1,B:1)。
在一示例中,绑定某一账户的第一终端登录在第一服务器产生通话记录后切换到第二服务器,本实施例提供的通话记录同步方法还包括:
第一终端在第一服务器产生通话记录时,第一服务器构建第一通话记录和第一节点版本号,并在第一更新前分布式版本号的基础上应用第一节点版本号,生成第一更新后分布式版本号;第一服务器将第一更新前分布式版本号、第一更新后分布式版本号及第一通话记录推送给所述第一终端;
所述第一终端比对接收的所述第一更新前分布式版本号与所述第一终端当前记录的本地分布式版本号一致时,应用所述第一通话记录,并更新所述当前记录的本地分布式版本号为所述第一更新后分布式版本号;
已更新当前记录的本地分布式版本号的第一终端从第一服务器切换到第二服务器,并在第二服务器产生通话记录后,第二服务器记录的通话记录及分布式版本号分别为第二通话记录和第二更新后分布式版本号;
第二服务器将产生通话记录前的第二更新前分布式版本号、第二更新后分布式版本号和第二通话记录发送给第一终端;
在第一终端比对第二更新前分布式版本号与第一终端当前记录的本地分布式版本号不一致时,第二服务器根据第一终端发送的数据拉取请求进行所述数据拉取过程。
例如,请参阅图6,图6是本发明某一实施例提供的一种通话记录同步方法的信令流程示意图,不同服务器之间的同步会因为网络波动存在数据延迟的情况,本发明分布式架构处理因为同步数据延迟产生的数据不一致问题采取的解决方案如下:
(1)账号C终端01(简称终端c01)记录分布式版本为空(即未在任何服务器上产生通话记录);终端c01登录到spbx服务器A(简称服务器A),并拉取通话记录,终端c01上报的分布式版本号为空。
(2)服务器A查询账号C未产生过通话记录,推送分布式版本号为空给终端c01。
(3)终端c01在服务器A上产生1条通话记录。
(4)服务器A,推送更新前分布式版本号(空),更新后分布式版本号(A:1),以及通话记录([A:0,A:1])到终端01上,终端c01更新记录分布式版本号为(A:1)。
(5)服务器A将产生的通话记录内容([A:0,A:1])以及节点版本号(A:1)通过中心间数据库(简称DB)数据同步,由于网络延迟,尚未同步到spbx服务器B(简称服务器B)所在中心的DB。
(6)终端c01从服务器A切换登录到服务器B,并拉取通话记录,上报的分布式版本号为(A:1)。
(7)服务器B查询账号C未产生过通话记录,推送分布式版本号(A:1)给终端c01。
(8)终端c01在服务器B上产生1条通话记录。
(9)服务器B,推送更新前分布式版本号(空),更新后分布式版本号(B:1),以及通话记录([B:0,B:1])到终端01上。
(10)终端c01检查更新前分布式版本号(空)和本地记录分布式版本号(A:1)不一致,拒绝本次更新,而使用拉取通话记录流程向服务器B拉取通话记录,上报分布式版本号(A:1)。
(11)服务器B在本中心的DB查询账号C的分布式版本(B:1)和上报的分布式版本号(A:1)对比,得到并构造增量的通话记录内容([B:0,B:1])。
(12)服务器B推送更新前分布式版本(B:1),更新后分布式版本(A:1,B:1)以及通话记录内容增量([B:0,B:1])给终端c01。
(13)终端c01收到推送更新后,使用更新前分布式版本和本地记录分布式版本号(B:1)比较一致,并应用通话记录增量,最后将本地分布式版本号更新为(A:1,B:1)。
(14)服务器A将产生的通话记录内容([A:0,A:1])以及节点版本号(A:1)通过中心间DB数据同步,此时数据同步到达服务器B所在中心的DB。
(15)服务器B推送更新后分布式版本(A:1,B:1)给终端c01。
(16)终端c01接收到版本号,比对更新后版本(A:1,B:1)和本地记录一致,则不做操作。
请参阅图7,图7是本发明第五实施例提供的一种通话记录同步方法的流程示意图。在本实施例中与上述实施例相同的部分,在此不再赘述。本实施例提供的通话记录同步方法,基于分布式架构,应用于服务器,具体包括:
步骤S210,终端在服务器上产生通话记录后,将产生通话记录前的更新前分布式版本号、产生通话记录后的更新后分布式版本号以及本次通话记录增量推送给终端。
步骤S220,当终端对比本地分布式版本号与所述更新前分布式版本号不一致时,接收数据拉取请求以进行数据拉取。其中,数据拉取包括:将账号当前存储在数据库中的分布式版本号与终端上传的本地分布式版本号进行比对,以构建最新分布式版本号和最新增量通话记录;将最新分布式版本号和最新增量通话记录推送给终端。
请参阅图8,图8是本发明第六实施例提供的一种通话记录同步方法的流程示意图。本实施例提供的通话记录同步方法,基于分布式架构,应用于终端,在本实施例中与上述实施例相同的部分,在此不再赘述。具体包括:
步骤S310,接收到服务器推送的产生通话记录前的更新前分布式版本号、产生通话记录后的更新后分布式版本号以及本次通话记录增量后,对比本地分布式版本号与所述更新前分布式版本号是否一致。若一致,则执行步骤S320;若不一致,则执行步骤S321。
步骤S320,应用通话记录增量并将本地分布式版本号更新为更新后分布式版本号。
步骤S321,向服务器发送本地分布式版本号并发送数据拉取请求以进行数据拉取,得到服务器构建的最新分布式版本号和最新增量通话记录。
优选地,当对比所述本地分布式版本号与所述更新前分布式版本号不一致时,进一步对比本地分布式版本号与所述更新后分布式版本号是否一致;若一致,则不做操作,同步结束;若不一致,向服务器发送本地分布式版本号并发送数据拉取请求以进行数据拉取。
基于上述一种通话记录同步方法,本申请还提出一种通话记录同步系统,通话记录同步系统包括:服务器、终端和数据库;服务器,用于获取终端发送的数据拉取请求,推送最新分布式版本号和增量通话记录给终端,并将所述通话记录增量和同步后所述终端的本地分布式版本号发送给数据库;终端,用于接收服务器推送的最新通话记录增量和最新分布式版本号,并同步所述终端的本地分布式版本号和通话记录;数据库,用于存储通话记录和分布式版本号。本发明通过设计分布式版本号,无需有单点的通话记录版本号分配中心,可以多账号多终端在分布式架构的不同中心不同服务器上高并发的产生通话记录,再借助数据可同步异步修正的方式同步到各个终端,从而不会有单点瓶颈;不会存在版本分配中心故障时无法产生和推送通话记录到终端的风险;任一服务器故障,终端可以重新在其他服务器上重新登录并产生通话记录;故障的服务器在故障时尚未提交的通话记录,也可以在故障恢复后同步到对应终端。
基于上述一种通话记录同步方法,本申请还提出一种电子设备。请参阅图9,图9是本发明某一实施例提供的一种电子设备的结构示意图。控制装置400可以包括存储器41和处理器42,存储器41连接处理器42,存储器41中存储有计算机程序,计算机程序被处理器42执行时实现上述任一实施例的方法。其步骤和原理在上述方法已详细介绍,在此不再赘述。
在本实施例中,处理器42还可以称为CPU(central processing unit,中央处理单元)。处理器42可以是一种集成电路芯片,具有信号的处理能力。处理器42还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (10)

1.一种通话记录同步方法,其特征在于,基于分布式架构,包括:
任一终端在任一服务器产生通话记录后,所述服务器将产生通话记录前的更新前分布式版本号、产生通话记录后的更新后分布式版本号以及本次通话记录增量推送给账号对应的终端;
终端接收到服务器推送的所述更新前分布式版本号、所述更新后分布式版本号及所述通话记录增量后,终端对比本地分布式版本号与所述更新前分布式版本号是否一致;
若一致,终端应用通话记录增量并将本地分布式版本号更新为更新后分布式版本号;
若不一致,终端向服务器发送本地分布式版本号并发送数据拉取请求以进行数据拉取;
所述数据拉取包括:服务器将账号当前存储在数据库中的分布式版本号与终端上传的本地分布式版本号进行比对,以构建最新分布式版本号和最新增量通话记录;服务器将最新分布式版本号和最新增量通话记录推送给终端。
2.根据权利要求1所述的通话记录同步方法,其特征在于,终端对比本地分布式版本号与所述更新前分布式版本号不一致时,还包括终端进一步对比本地分布式版本号与所述更新后分布式版本号是否一致;若一致,则同步结束;若不一致,终端向服务器发送本地分布式版本号并发送数据拉取请求以进行数据拉取。
3.根据权利要求1所述的通话记录同步方法,其特征在于,所述服务器将账号当前存储在数据库中的分布式版本号与终端上传的本地分布式版本号进行比对,以构建最新分布式版本号和最新增量通话记录,包括:
所述服务器从数据库查询所述终端对应账号当前的分布式版本号;分布式版本号包括若干节点版本号;
所述服务器逐个节点判断在本地分布式版本号中对应的第一节点版本号是否大于账号当前的分布式版本号中对应的第二节点版本号;
若是,选择第一节点版本号作为最新节点版本号;
若否,选择第二节点版本号作为最新节点版本号,并从数据库查询大于第一节点版本号且小于或等于第二节点版本号范围内的通话记录作为最新增量通话记录;
所述服务器将所有最新节点版本号合并为最新分布式版本号。
4.根据权利要求1所述的通话记录同步方法,其特征在于,还包括在终端首次登陆服务器时,终端向服务器发送本地分布式版本号并发送数据拉取请求以进行所述数据拉取过程。
5.根据权利要求1所述的通话记录同步方法,其特征在于,还包括:
服务器接收到终端上报的本地分布式版本号后,将对应账号标记为非数据同步延迟状态;
所述服务器从数据库查询所述终端对应账号当前的分布式版本号,当本地分布式版本号中任一节点的版本号大于账号当前的分布式版本号中对应节点的版本号时,将账号标记为数据同步延迟状态。
6.根据权利要求1所述的通话记录同步方法,其特征在于,同一账户通过第一终端和第二终端分别登录到第一服务器和第二服务器,所述第一服务器连接第一数据库,所述第二服务器连接第二数据库,所述方法包括:
所述第一终端在所述第一服务器产生通话记录时,所述第一服务器将当前通话记录及节点版本号分别记录为新增通话记录和更新节点版本号;所述第一服务器将所述新增通话记录及所述更新节点版本号发送至所述第一数据库;
所述第一数据库与所述第二数据库进行数据同步,所述第二服务器从所述第二数据库中获得所述新增通话记录及所述更新节点版本号,并在更新前分布式版本号的基础上应用更新节点版本号,生成更新后分布式版本号;
所述第二服务器推送更新前分布式版本号、更新后分布式版本号及新增通话记录至所述第二终端,以使所述第二终端完成本地分布式版本号的更新,并应用所述新增通话记录。
7.根据权利要求1所述的通话记录同步方法,其特征在于,绑定某一账户的第一终端登录在第一服务器产生通话记录后切换到第二服务器,所述方法还包括:
所述第一终端在所述第一服务器产生通话记录时,所述第一服务器构建第一通话记录和第一节点版本号,并在第一更新前分布式版本号的基础上应用第一节点版本号,生成第一更新后分布式版本号;所述第一服务器将第一更新前分布式版本号、第一更新后分布式版本号及第一通话记录推送给所述第一终端;
所述第一终端比对接收的所述第一更新前分布式版本号与所述第一终端当前记录的分布式版本号一致时,应用所述第一通话记录,并更新所述当前记录的本地分布式版本号为所述第一更新后分布式版本号;
已更新当前记录的本地分布式版本号的第一终端从所述第一服务器切换到所述第二服务器,并在所述第二服务器产生通话记录后,所述第二服务器记录的通话记录及分布式版本号分别为第二通话记录和第二更新后分布式版本号;
所述第二服务器将产生通话记录前的第二更新前分布式版本号、所述第二更新后分布式版本号和所述第二通话记录推送给所述第一终端;
在所述第一终端比对所述第二更新前分布式版本号与所述第一终端当前记录的分布式版本号不一致时,所述第二服务器根据所述第一终端发送的数据拉取请求进行所述数据拉取过程。
8.一种通话记录同步方法,其特征在于,基于分布式架构,应用于服务器包括:
终端在服务器上产生通话记录后,将产生通话记录前的更新前分布式版本号、产生通话记录后的更新后分布式版本号以及本次通话记录增量推送给终端;
当终端对比本地分布式版本号与所述更新前分布式版本号不一致时,接收数据拉取请求以进行数据拉取;
所述数据拉取包括:将账号当前存储在数据库中的分布式版本号与终端上传的本地分布式版本号进行比对,以构建最新分布式版本号和最新增量通话记录;将最新分布式版本号和最新增量通话记录推送给终端。
9.一种通话记录同步方法,其特征在于,基于分布式架构,应用于终端包括:
接收到服务器推送的产生通话记录前的更新前分布式版本号、产生通话记录后的更新后分布式版本号以及本次通话记录增量后,对比本地分布式版本号与所述更新前分布式版本号是否一致;
若一致,应用通话记录增量并将本地分布式版本号更新为更新后分布式版本号;
若不一致,向服务器发送本地分布式版本号并发送数据拉取请求以进行数据拉取,得到服务器构建的最新分布式版本号和最新增量通话记录。
10.一种通话记录同步系统,其特征在于,所述通话记录同步系统用于执行上述权利要求1-7任一项所述的方法,所述通话记录同步系统包括:
服务器、终端和数据库;
所述服务器,用于获取所述终端发送的数据拉取请求,推送最新分布式版本号和增量通话记录给终端,并将所述增量通话记录和同步后所述终端的本地分布式版本号发送给数据库;
所述终端,用于接收服务器推送的最新通话记录增量和最新分布式版本号,并同步所述终端的本地分布式版本号和通话记录;
所述数据库,用于存储通话记录和分布式版本号。
CN202110160112.3A 2021-02-05 2021-02-05 一种通话记录同步方法、系统及电子设备 Active CN113067848B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110160112.3A CN113067848B (zh) 2021-02-05 2021-02-05 一种通话记录同步方法、系统及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110160112.3A CN113067848B (zh) 2021-02-05 2021-02-05 一种通话记录同步方法、系统及电子设备

Publications (2)

Publication Number Publication Date
CN113067848A CN113067848A (zh) 2021-07-02
CN113067848B true CN113067848B (zh) 2023-09-26

Family

ID=76558668

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110160112.3A Active CN113067848B (zh) 2021-02-05 2021-02-05 一种通话记录同步方法、系统及电子设备

Country Status (1)

Country Link
CN (1) CN113067848B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1369170A (zh) * 1999-06-08 2002-09-11 狄克塔电话公司 一种用于通话记录创建及处理的系统和方法
EP2156652A1 (en) * 2008-02-28 2010-02-24 Leeds, Richard Method and system for notification and telecommunications management
US7945615B1 (en) * 2005-10-31 2011-05-17 Adobe Systems Incorporated Distributed shared persistent objects
CN103259824A (zh) * 2012-02-21 2013-08-21 深圳市腾讯计算机系统有限公司 分布式数据存储系统中数据路由的同步方法和装置
CN103916409A (zh) * 2012-12-30 2014-07-09 中国移动通信集团公司 一种数据同步的方法、终端与系统
CN105426403A (zh) * 2015-10-30 2016-03-23 努比亚技术有限公司 书签同步方法及装置
CN105763369A (zh) * 2016-02-04 2016-07-13 湖南长城信息金融设备有限责任公司 一种终端设备远程软件版本分发方法及系统
CN107733957A (zh) * 2016-08-12 2018-02-23 北京融聚世界网络科技有限公司 分布式服务配置系统及版本号分配方法
CN107819870A (zh) * 2017-11-21 2018-03-20 广州视睿电子科技有限公司 增量拉取数据方法、装置、存储介质、终端设备和服务器
CN108234641A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 基于分布式一致性协议实现的数据读写方法及装置
CN108259562A (zh) * 2017-12-11 2018-07-06 杭州品茗安控信息技术股份有限公司 一种基于多端点的数据同步方法及装置
CN109871390A (zh) * 2019-02-25 2019-06-11 交通银行股份有限公司 一种分布式多副本数据同步方法、系统及服务器
CN112217712A (zh) * 2020-09-24 2021-01-12 福建天泉教育科技有限公司 消息多端同步的方法、客户端

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101686458B (zh) * 2008-09-28 2013-06-12 华为技术有限公司 一种终端配置和管理方法及终端装置
US20160055194A1 (en) * 2014-08-19 2016-02-25 Subodh C. Gupta Data synchronization management between devices

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1369170A (zh) * 1999-06-08 2002-09-11 狄克塔电话公司 一种用于通话记录创建及处理的系统和方法
US7945615B1 (en) * 2005-10-31 2011-05-17 Adobe Systems Incorporated Distributed shared persistent objects
EP2156652A1 (en) * 2008-02-28 2010-02-24 Leeds, Richard Method and system for notification and telecommunications management
CN103259824A (zh) * 2012-02-21 2013-08-21 深圳市腾讯计算机系统有限公司 分布式数据存储系统中数据路由的同步方法和装置
CN103916409A (zh) * 2012-12-30 2014-07-09 中国移动通信集团公司 一种数据同步的方法、终端与系统
CN105426403A (zh) * 2015-10-30 2016-03-23 努比亚技术有限公司 书签同步方法及装置
CN105763369A (zh) * 2016-02-04 2016-07-13 湖南长城信息金融设备有限责任公司 一种终端设备远程软件版本分发方法及系统
CN107733957A (zh) * 2016-08-12 2018-02-23 北京融聚世界网络科技有限公司 分布式服务配置系统及版本号分配方法
CN107819870A (zh) * 2017-11-21 2018-03-20 广州视睿电子科技有限公司 增量拉取数据方法、装置、存储介质、终端设备和服务器
CN108259562A (zh) * 2017-12-11 2018-07-06 杭州品茗安控信息技术股份有限公司 一种基于多端点的数据同步方法及装置
CN108234641A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 基于分布式一致性协议实现的数据读写方法及装置
CN109871390A (zh) * 2019-02-25 2019-06-11 交通银行股份有限公司 一种分布式多副本数据同步方法、系统及服务器
CN112217712A (zh) * 2020-09-24 2021-01-12 福建天泉教育科技有限公司 消息多端同步的方法、客户端

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
On the Support of Versioning in Distributed Key-Value Stores;Pascal Felber et.al.;2014 IEEE 33rd International Symposium on Reliable Distributed Systems;全文 *
一种适用于协同设计环境的分布式存储系统;郑涔;李小勇;;微型电脑应用(05);全文 *
基于区块链和分布式数据库的铁路旅客隐私保护技术研究;周亮瑾;中国优秀硕士学位论文全文数据库 (信息科技辑);全文 *

Also Published As

Publication number Publication date
CN113067848A (zh) 2021-07-02

Similar Documents

Publication Publication Date Title
JP4829316B2 (ja) 中断された同期プロセスに対処してデータを同期させる方法、装置、システム
US6643669B1 (en) Method for optimization of synchronization between a client&#39;s database and a server database
US8171171B2 (en) Data synchronization method and system between devices
US7155173B2 (en) Method and system for providing a context for message compression
CN101188643B (zh) 联系目的地信息登记方法、网络系统和节点
CN1881978B (zh) 应用管理系统、应用管理方法、服务器以及通信系统
EP2163989A1 (en) A method and device for data synchronization among terminals
JP2002528966A (ja) インテリジェントネットワークに分配されたサービスノード中のサービスモジュールを展開する方法および装置
JP2003524968A (ja) Dnaトランスミッション(送信)及びトランスクリプション技術を利用した冗長データセットを表示及び維持するためのシステム及び方法
US20070255823A1 (en) Method for low-overhead message tracking in a distributed messaging system
KR20050084886A (ko) 데이터 동기
CN108076081B (zh) 一种业务数据的同步方法、装置和系统
EP1257918B1 (en) Data recovery in a distributed system
CN107870982A (zh) 数据处理方法、系统和计算机可读存储介质
US20090198821A1 (en) Method, system and network entity for negotiating the session description protocol version and obtaining the session description protocol version information
WO2009006779A1 (fr) Procédé et système pour déterminer un nœud d&#39;index de domicile et un nœud de service de domicile d&#39;un utilisateur
CN113067848B (zh) 一种通话记录同步方法、系统及电子设备
CN101610225B (zh) 一种同步处理方法、系统和装置
CN112243139B (zh) 一种多媒体终端的节目分发同步方法及系统
CN102594874A (zh) 一种同步处理方法和装置
CN110912979B (zh) 一种解决多服务器资源同步冲突方法
JP6533502B2 (ja) 通信サービス提供システムおよび通信サービス提供方法
CN105141687A (zh) 一种生产消息的方法
CN110099117B (zh) 一种多版本dns区文件全量下发的方法和装置
CA3177732A1 (en) Methods and apparatuses for enhanced 5gc restoration when a network function (nf) set is deployed in the network

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