一种基于分布式系统的业务对象的处理方法和装置的制造方法

文档序号:9810262阅读:279来源:国知局
一种基于分布式系统的业务对象的处理方法和装置的制造方法
【技术领域】
[0001]本申请涉及分布式系统的技术领域,尤其涉及一种基于分布式系统的业务对象的处理方法和一种基于分布式系统的业务对象的处理装置。
【背景技术】
[0002]分布式系统(distributed system)是由许多相同的应用节点相互协作构成的、建立在网络之上的系统。在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体。
[0003]在分布式系统环境下,应用节点可以进行业务对象的处理,也可以称为处理节点,通常都会部署NTP(Network Time Protocol,用来使计算机时间同步化的一种协议)时钟校准服务,用于校准各处理节点的系统时间;取得全局线性时间的效果,防止由于各个处理节点操作系统的本地时钟偏差、所导致的时钟跃变现象。
[0004]但是基于NTP时钟校准服务,各个处理节点取到的最新时间需要覆盖本地操作系统时间,在覆盖完之后再进行计时,这个过程会出现彼此间的差异,使得无法保证在某个绝对时点下、处理节点间的本地系统时间绝对一致。
[0005]在一个海量、高并发的分布式系统中处理业务对象,要求分布式系统所产生的每次业务对象的处理数据,其所登记的业务发生时间点能够清晰表明业务发生的顺序,要求精确到毫秒甚至纳秒级。
[0006]当分布式系统对时间准确性要求极高时,分布式系统的处理节点间本地时间所存在的细微差异瑕疵将被放大。
[0007]假设一次稍早的业务对象的处理请求,由于被路由到本地时间稍晚的处理节点进行处理,其登记的处理时间可能会晚于另外一次业务对象的处理时间,尤其在零点附近容易出现业务对象的处理跨日、跨月、跨季、跨年等现象,使得在业务对象的处理数据核对等情况下出现严重的错误。
[0008]例如,系统A向分布式系统B发起两次业务对象的处理请求X和Y,X和Y的请求时间相距一秒钟。系统A认为,X的发生时间点要早于Y ;而分布式系统B处理两次处理请求的应用节点由于时间不一致,先处理X的一个处理节点其时间比后处理Y的另一个处理节点时间要晚,导致分布式系统B处理X的处理时间晚于处理Y的处理时间。
[0009]如果系统A用X和Y的数据与分布式系统B的处理数据进行核对,会发现X和Y的处理时间点不一致,也就是“乱序”现象。
[0010]因此,目前需要本领域技术人员迫切解决的一个技术问题就是:如何提出一种基于分布式系统的业务对象的处理机制,以提高处理节点之间时间信息的一致性。

【发明内容】

[0011]本申请实施例所要解决的技术问题是提供一种基于分布式系统的业务对象的处理方法,以提高处理节点之间时间信息的一致性。
[0012]相应的,本申请实施例还提供了一种基于分布式系统的业务对象的处理装置,以提高处理节点之间时间信息的一致性。
[0013]为了解决上述问题,本申请实施例公开了一种基于分布式系统的业务对象的处理方法,包括:
[0014]在分布式系统中的业务对象处理节点中接收业务对象的第一处理请求;所述第一处理请求中包括数据处理信息;
[0015]根据所述数据处理信息生成业务对象数据;
[0016]从分布式系统中的时间服务节点提取时间戳;
[0017]在所生成的业务对象数据中添加所述时间戳。
[0018]优选地,所述时间服务节点为分布式系统中的独立节点。
[0019]优选地,所述时间服务节点包括分布式系统中集成于指定业务对象处理节点中,用于提供时间戳的时间服务模块。
[0020]优选地,所述时间服务节点包括时间服务主节点及时间服务备份节点;所述从所述时间服务节点中提取时间戳的步骤包括:
[0021]从所述时间服务主节点中提取时间戳;
[0022]当从所述时间服务主节点中提取时间戳失败时,从所述时间服务备份节点中提取时间戳。
[0023]优选地,从时间服务主节点或时间服务备份节点中提取时间戳的方式为Get方式。
[0024]优选地,所述业务对象处理节点包括一个或多个本地线程变量,每个本地线程变量具有独立的变量副本;
[0025]所述根据所述数据处理信息生成业务对象数据的步骤包括:
[0026]在所述一个或多个本地线程变量中,采用所述独立的变量副本按照所述业务对象处理信息生成业务对象数据。
[0027]优选地,所述时间戳存储在内存中;所述在所生成的业务对象数据中添加所述时间戳的步骤包括:
[0028]从内存中提取所述时间戳;
[0029]在所生成的业务对象数据中添加在内存提取的时间戳。
[0030]优选地,所述业务对象数据具有业务对象数据标识,所述方法还包括:
[0031]将所述时间戳和所述业务对象数据标识进行数据映射。
[0032]本申请实施例还公开了一种基于分布式系统的业务对象的处理方法,包括:
[0033]在分布式系统中的第一业务对象处理节点中接收第二业务处理节点发送的业务对象的第二处理请求;所述处理请求中包括数据处理信息和时间戳;
[0034]根据所述数据处理信息生成业务对象数据;
[0035]在所生成的业务对象数据中添加所述时间戳;
[0036]其中,所述时间戳为所述第二业务处理节点在接收到业务对象的第三处理请求时,从分布式系统中的时间服务节点中提取的时间戳。
[0037]本申请实施例还公开了一种基于分布式系统的业务对象的处理装置,包括:
[0038]第一请求接收模块,用于在分布式系统中的业务对象处理节点中接收业务对象的第一处理请求;所述第一处理请求中包括数据处理信息;
[0039]业务对象数据生成模块,用于根据所述数据处理信息生成业务对象数据;
[0040]时间戳提取模块,用于从分布式系统中的时间服务节点中提取时间戳;
[0041]时间戳添加模块,用于在所生成的业务对象数据中添加所述时间戳。
[0042]优选地,所述时间服务节点包括时间服务主节点及时间服务备份节点;所述时间戳提取模块包括:
[0043]主节点提取子模块,用于从所述时间服务主节点中提取时间戳;
[0044]备份节点提取子模块,用于在从所述时间服务主节点中提取时间戳失败时,从所述时间服务备份节点中提取时间戳。
[0045]优选地,所述业务对象处理节点包括一个或多个本地线程变量,每个本地线程变量具有独立的变量副本;
[0046]所述业务对象数据生成模块包括:
[0047]并发生成子模块,用于在所述一个或多个本地线程变量中,采用所述独立的变量副本按照所述业务对象处理信息生成业务对象数据。
[0048]优选地,所述时间戳存储在内存中;所述时间戳添加模块包括:
[0049]提取子模块,用于从内存中提取所述时间戳;
[0050]添加子模块,用于在所生成的业务对象数据中添加在内存提取的时间戳。
[0051]优选地,所述业务对象数据具有业务对象数据标识,所述装置还包括:
[0052]映射模块,用于将所述时间戳和所述业务对象数据标识进行数据映射。
[0053]本申请实施例还公开了一种基于分布式系统的业务对象的处理装置,包括:
[0054]第二请求接收模块,用于在分布式系统中的第一业务对象处理节点中接收第二业务处理节点发送的业务对象的第二处理请求;所述第二处理请求中包括数据处理信息和时间戳;
[0055]业务对象数据生成模块,用于根据所述数据处理信息生成业务对象数据;
[0056]时间戳添加模块,用于在所生成的业务对象数据中添加所述时间戳;
[0057]其中,所述时间戳为所述第二业务处理节点在接收到业务对象的第三处理请求时,从分布式系统中的时间服务节点中提取的时间戳。
[0058]本申请实施例在分布式系统中的业务对象处理节点中按照业务对象的处理请求中数据处理信息生成业务对象数据,根据处理请求中的时间获取信息从分布式系统中的时间服务节点中提取时间戳,以及在所生成的业务对象数据中添加所述时间戳,而对于单个时间服务节点,无论其本身的时间是否绝对精准,如与格林威治时间是否绝对一致,但是其时间戳具有强一致性、强连续性的特征,分布式系统环境下的处理节点遵从该时间服务节点的授时,避免了因为提供时间服务的不同机器之间的原子时钟不同而造成处理节点之间时间存在细微的差异的问题,提高了处理节点之间时间信息的一致性,以保证各业务对象的处理时间的顺序正确。
[005
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1