CN113726830B - 一种报文标识生成方法及装置 - Google Patents
一种报文标识生成方法及装置 Download PDFInfo
- Publication number
- CN113726830B CN113726830B CN202010451139.3A CN202010451139A CN113726830B CN 113726830 B CN113726830 B CN 113726830B CN 202010451139 A CN202010451139 A CN 202010451139A CN 113726830 B CN113726830 B CN 113726830B
- Authority
- CN
- China
- Prior art keywords
- message
- target
- identifier
- target message
- generating
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2329—Optimistic concurrency control using versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种报文标识生成方法及装置,其中,该报文标识生成方法包括:获取目标报文,并将目标报文的版本号设置为初始值;基于目标报文的内容和版本号的值进行哈希计算,得到目标报文的哈希值;根据哈希值生成目标报文的报文标识。通过实施本发明,即使机房出现故障,数据库同步不稳定,也可以为目标报文创建唯一报文标识,避免了为目标报文分配多个不同报文标识或漏分配报文标识的问题。
Description
技术领域
本发明涉及计算机领域,具体涉及一种报文标识生成方法及装置。
背景技术
交易在轧差后生成清算指令,在将清算指令转换为报文的过程中,需要为报文分配报文标识号,用于标识报文。在对报文进行处理时,通过报文标识号判定该报文是否已被处理,从而保证执行端对报文处理时不重、不漏,因此报文标识需要确保与发送到执行终端的报文一一对应,防止对同一报文进行多次处理或漏处理。
但在分布式系统架构下,某些特定情况可能会导致主备数据库同步不稳定,进而导致对同一报文分配标识号时遗漏或重复,因此亟需一种能够为报文分配唯一标识号的报文标识生成方法。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中的为报文生成报文标识的方法容易造成清算错误缺陷,从而提供一种报文标识生成方法及装置。
本发明第一方面提供了一种报文标识生成方法,包括:获取目标报文,并将目标报文的版本号设置为初始值;基于目标报文的内容和版本号的值进行哈希计算,得到目标报文的哈希值;根据哈希值生成目标报文的报文标识。
可选地,本发明提供的报文标识生成方法中,在根据哈希值生成目标报文的报文标识的步骤之后,还包括:判断数据库表中是否存在报文标识与目标报文的报文标识相同的报文;在数据库表中不存在报文标识与目标报文的报文标识相同的报文的情况下,将目标报文及与目标报文相对应的报文标识对应存储于数据库表。
可选地,在数据库表中存在报文标识与目标报文的报文标识相同的报文的情况下,判断报文的内容是否与目标报文的内容相同;在报文的内容与目标报文的内容不相同的情况下,更新版本号的值,并基于目标报文的内容和更新后的版本号的值重新计算目标报文的哈希值,根据重新计算得到的哈希值生成目标报文的报文标识,直到数据库表中不存在与目标报文的报文标识相同,但是内容不相同的报文。
可选地,在更新版本号的值的步骤之后,基于目标报文的内容和更新后的版本号的值重新计算目标报文的哈希值的步骤之前,还包括:判断版本号的更新次数是否大于预设值;若版本号的更新次数大于预设值,根据第一预留序列段生成目标报文的报文标识。
可选地,基于目标报文的内容和版本号的值进行哈希计算,得到目标报文的哈希值的步骤包括:获取目标报文的报文类型,并确定与报文类型相对应的目标哈希函数;以目标哈希函数对目标报文的内容和版本号的值进行哈希计算,得到目标报文的哈希值。
可选地,不同类型的目标报文对应不同的序列段;根据哈希值生成目标报文的报文标识的步骤包括:获取目标报文的报文类型;获取与目标报文的类型相对应的序列段;根据哈希值和序列段生成目标报文的报文标识。
可选地,在根据哈希值生成目标报文的报文标识的步骤之后,还包括:将目标报文及与目标报文相对应的报文标识对应存储于数据库表。
可选地,本发明提供的报文标识生成方法,还包括:根据所述哈希值和第二预留序列段生成所述目标报文的报文标识。
本发明第二方面提供了一种报文标识生成装置,包括:报文获取模块,用于获取目标报文,并将目标报文的版本号设置为初始值;哈希计算模块,基于目标报文的内容和版本号的值进行哈希计算,得到目标报文的哈希值;报文标识生成模块,用于根据哈希值生成目标报文的报文标识。
本发明第三方面提供了一种计算机设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,从而执行如本发明第一方面提供的报文标识生成方法。
本发明第四方面提供了一种计算机可读存储介质,其特征在于,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行如本发明第一方面提供的报文标识生成方法。
本申请实施例采用上述至少一个技术方案能够达到以下有益效果:
1.本发明提供的报文标识生成方法,通过对目标报文的内容和版本号进行哈希计算,得到哈希值,然后基于哈希值生成目标报文的报文标识,由于目标报文的报文标识是基于其本身内容产生的,并不依赖于数据库,因此即使机房出现故障,数据库同步不稳定,也可以为目标报文创建唯一报文标识,避免了为目标报文分配多个不同报文标识或漏分配报文标识的问题。
2.本发明提供的报文标识生成装置,通过对目标报文的内容和版本号进行哈希计算,得到哈希值,然后基于哈希值生成目标报文的报文标识,由于目标报文的报文标识是基于其本身内容产生的,并不依赖于数据库,因此即使机房出现故障,数据库同步不稳定,也可以为目标报文创建唯一报文标识,避免了为目标报文分配多个不同报文标识或漏分配报文标识的问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中银行机房工作的流程图;
图2-图6为本发明实施例中报文标识生成方法的流程图;
图7为本发明实施例中实施本发明提供的报文标识生成方法的系统架构;
图8为本发明实施例中报文标识生成装置的原理框图;
图9为本发明实施例中提供的计算机设备原理框图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
如图1所示,用户通过终端在网上执行一项操作时,计算机会将该操作认定为一项业务,并生成相应的指令,指令经前置系统转化成报文发送到消息队列,消息队列再将报文推送到指定执行终端完成此项操作。每个发送到执行终端的报文须具有唯一且不重复的报文标识,该标识号起到防重的作用。每个报文标识在执行终端只受理一次,当再出现相同标识号的报文时,会返回该报文已受理的信息。目前生成报文标识的方法为:为接收的报文按顺序分发标识号,即,为第一个报文分发数值为1的报文标识,为第二个报文分发数值为2的报文标识,……。为了保障业务的连续性,通常执行终端会部署主备机房,主机房出现故障时应实时切换备机房。数据库分布式一致性方案是同城半同步复制、异地异步复制。然而,由于数据库的异步复制,使用上述传统的标识号生成方法,当机房出现故障时,往往会因为报文标识分配错误导致多结算或少结算的问题。例如:报文A在北京机房创建了报文标识a,发到执行终端,此时北京机房故障,服务切换上海机房,同时数据库复制也发生故障,指令状态和报文标识a没有同步到上海机房,导致报文A在上海机房又创建了报文标识b,发到执行终端,由于为统一报文创建了两个不同的标识号,因此导致报文A在执行终端处理了2次,结算出现错误;或者,报文A在北京机房创建了报文标识a,发到消息队列,并卡在消息队列,此时北京机房故障,服务切换上海机房,同时数据库复制也发生故障,指令状态和报文标识a没有同步到上海机房,导致报文B在上海机房创建了报文标识a,发到消息队列,并卡在MQ,指令处理超时,此时北京机房MQ中的报文A得到执行终端的处理,报文B超时后进入状态机流程,用报文标识a去执行终端查询,得到正确结算的反馈,于是指令更新为结束状态。其实报文B是少执行了。由此可见,目前为报文生成标识号的方法过度依赖数据库的一致性,当主机房出现故障且数据库同步不稳定时,容易造成执行错误。
本发明实施例提供一种报文标识生成方法,如图2所示,包括:
步骤S10:获取目标报文,并将目标报文的版本号设置为初始值,版本号的初始值可以为任意值,且版本号的形式可以为整数值、字符串、或者符号等,实际应用中可以根据实际需求对版本号的形式进行选择,但是在本发明实施例中,为了方便后续对版本号的值的处理,可以将版本号的初始值设置为0;
步骤S20:基于目标报文的内容和版本号的值进行哈希计算,得到目标报文的哈希值,在一具体实施例中,可以通过任意的哈希函数对目标报文的内容和版本号的值进行哈希计算,在实际执行过程中,可以根据实际需求选用合适的哈希函数,在本发明实施例中,为了降低哈希冲突概率,采用SHA256算法,该算法可保证数据的少量更改会在哈希值中产生不可预知的大量更改,这样冲突的概率大大减少。目标报文很容易转化成Json字符串,可将该字符串作为算法的种子,使得相同报文产生相同的哈希值。
步骤S30:根据哈希值生成目标报文的报文标识。在一具体实施例中,报文标识的格式可以自行定义,例如,可以将报文标识定义为16位的数字字符串,前八位为工作日日期,后八位为随机的数字,例如“2019070900000001”,后八位的随机数字通过哈希值获得,计算得到的哈希值为一个字符串,在计算得到哈希值后,可以通过自定义的算法将哈希值转换为整型数值,然后将整型数值替换通过一定规则转化为八位数,与工作日日期相结合即可得到目标报文的报文标识,其中,将哈希值转换为整型数值的方式有多种,例如可以通过如下公式进行转化:s[0]*31(n-1)+s[1]*31(n-2)+…+s[n-1],其中,s[i]表示字符串的第i个字符,n表示字符串的长度。
本发明实施例提供的报文标识生成方法,通过对目标报文的内容和版本号进行哈希计算,得到哈希值,然后基于哈希值生成目标报文的报文标识,由于目标报文的报文标识是基于其本身内容产生的,并不依赖于数据库,因此即使机房出现故障,数据库同步不稳定,也可以为目标报文创建唯一报文标识,避免了为目标报文分配多个不同报文标识或漏分配报文标识的问题。
在一可选实施例中,在上述步骤S30之后,本发明实施例提供的报文标识生成方法还包括:将目标报文及与目标报文相对应的报文标识对应存储于数据库表。将目标报文与其相对应的报文标识对应存储于数据库表中,在为后续报文分发报文标识时,可以通过查询该数据库表避免出现重复发号或漏发号的情况。
在一可选实施例中,如图3所示,本发明实施例提供的报文标识生成方法,在上述步骤S30之后,还包括:
步骤S41:判断数据库表中是否存在报文标识与目标报文的报文标识相同的报文。
在数据库表中不存在报文标识与目标报文的报文标识相同的报文的情况下,执行如下步骤:
步骤S42:将目标报文及与目标报文相对应的报文标识对应存储于数据库表。在将目标报文和其报文标识插入数据库表前,先判断数据库表中是否已经存在相同的报文标识,只有在数据库表中不存在相同的报文标识时,才将目标报文与报文标识插入,有效避免了将同一报文标识重复分配给不同报文的问题。
在一具体实施例中,如图3所示,在执行上述步骤S41之后,在数据库表中存在报文标识与目标报文的报文标识相同的报文的情况下,执行如下步骤:
步骤S43:判断报文的内容是否与目标报文的内容相同。由于通过哈希计算会出现哈希冲突,即使报文内容不同,计算出的哈希值可能是相同的,从而得到的报文标识也是相同的,因此为了保证目标报文的报文标识不被漏发,在发现相同的报文标识时,需要判断数据库表中与该报文标识相对应的报文的内容是否与目标报文的内容相同。
在执行上述步骤S43之后,在报文的内容与目标报文的内容不相同的情况下,执行如下步骤:
步骤S44:更新版本号的值,并基于目标报文的内容和更新后的版本号的值重新计算目标报文的哈希值,根据重新计算得到的哈希值生成目标报文的报文标识,直到数据库表中不存在与目标报文的报文标识相同,但是内容不相同的报文。为了在产生哈希冲突时保证为目标报文生成唯一标识,本发明实施例引入了版本号,将版本号纳入哈希算法中,在出现哈希冲突时,将版本号的值进行更新,并将目标报文的内容与更新后的版本号重新进行哈希计算,能够产生新的哈希值,从而产生新的标识号。
在一可选实施例中,如图3所示,执行上述步骤S43之后,若与报文标识相对应的报文的内容与目标报文的内容相同,说明该报文已经被分发过报文标识,因此无需再次发号,以免造成同一业务的多次清算,此时需返回步骤S10,重新获取新的目标报文,重新执行步骤S10-步骤S30,为新的目标报文分发报文标识。
本发明实施例提供的报文标识生成方法,在为目标报文分配报文标识后,将目标报文及其对应的报文标识对应存储于数据库表中,当为新的目标报文分配报文标识时,先根据数据库表判断计算出的报文标识是否已经存在,若报文标识存在,但是与报文标识相对应的报文的内容与目标报文的内容不相同,则更新版本号,重新计算哈希值,生成新的报文标识,如此反复,在数据库表中不存在与目标报文相同的报文的前提下,直至为目标报文生成唯一的报文标识,由此可见,通过本发明实施例提供的报文标识生成方法,既避免了为同一报文分配多个不同的报文标识,也保障了可以为不同内容的目标报文分配唯一的报文标识。
在一可选实施例中,如图4所示,在执行上述步骤S44之后,返回步骤S20之前,还包括如下步骤:
步骤S45:判断版本号的更新次数是否大于预设值,在一具体实施例中,若版本号的值为整数,可以在每次更新时将版本号的值加1,最终通过版本号的值确定版本号的更新次数。
若版本号的更新次数大于预设值,执行如下步骤:
步骤S46:根据第一预留序列段生成目标报文的报文标识。在极端情况下(通常是产生的报文标识占总空间比例很大),可能经过若干次哈希计算后仍然冲突,本发明实施例设置了第一预留序列段,用于为版本号的更新次数大于预设值的目标报文分配报文标识,例如,如果系统初始分配了序列段1-100000000作为发号序列,可将99950000-99999999作为第一预留序列段,多次冲突后,在后5万个数(相当于上述第一预留序列段)中采用递增算法分配报文标识。
本发明实施例提供的报文标识生成方法,还设置有第一预留序列段,当对目标报文的版本号多次更新,并根据其哈希值生成报文标识后,数据库表中仍然存在报文标识相同,但是内容与目标报文并不相同的报文时,根据第一预留序列为目标报文分配报文标识,通过该方法,即使在极端情况下也可以保证为目标报文正常分配报文标识。
在一具体实施例中,可以将版本号的更新次数作为判定哈希函数的优劣的一项重要指标,若版本号的更新次数达到一定值,或在计算多个目标报文的报文标识时,都会将版本号的值更新多次,则表示该哈希函数产生哈希冲突次数较多,可以酌情更换其他算法。在计算过程中,计算时间也为判定哈希函数优劣的指标之一,在实际应用过程中可以根据实际需求选择合适的哈希函数。
在一可选实施例中,如图5所示,上述步骤S20具体包括:
步骤S21:获取目标报文的报文类型,并确定与报文类型相对应的目标哈希函数,在一具体实施例中,不同的业务类型会产生不同类型的报文。
步骤S22:以目标哈希函数对目标报文的内容和版本号的值进行哈希计算,得到目标报文的哈希值。为了减少哈希冲突的概率,可以针对不同类型的报文设置不同的哈希函数,当获取到目标报文时,可以根据目标报文的报文类型选择与该类型相对应的哈希函数进行哈希值的计算,从而得到报文标识,例如,对于相似度较高的一类报文,可以选择能够将报文内容分解为更小块的哈希函数,从而能够对相似度较高的报文计算得到不同的哈希值,对于报文内容相似度较低的一类报文,可以选择计算速度更快的哈希函数。
本发明实施例提供的报文标识生成方法,为不同类型的目标报文设置了不同的哈希函数,在获取到目标报文后,先判断目标报文所属类型,然后根据其类型选择合适的哈希函数计算其哈希值,从而为其分配报文标识。通过为不同类型的目标报文设置不同的哈希函数,可以有效减少哈希冲突,从而更快速地生成目标报文的报文标识。
在一可选实施例中,如图6所示,步骤S30具体包括:
步骤S31:获取目标报文的报文类型,不同的业务类型会产生不同类型的报文。
步骤S32:获取与目标报文的类型相对应的序列段,在一具体实施例中,可以为不同类型的报文分配各自的序列段,例如,根据业务类型的不同,可以产生两种不同类型的报文,系统最初分配的发号序列为1-1亿,则可以定义前五千万为第一种报文的发号序列段,后五千万为第二种报文的发号序列段。
步骤S33:根据哈希值和序列段生成目标报文的报文标识。以步骤S32中的例子为例,当获取到的目标报文为第一种报文时,可以根据其哈希值从序列段1-5kw中选择数字作为该目标报文的报文标识。
本发明实施例提供的报文标识生成方法,为不同的目标报文设置了不同的标识号序列段,在为目标报文分配报文标识时,根据目标报文的类型选择与该类型相对应的序列段,然后根据哈希值和该序列段生成目标报文的报文标识,通过该方法分配报文标识时,不仅可以减少报文标识重复出现概率,而且由于不同类型的序列段之间互不交叉,因此可以同时为不同类型的目标报文分配报文标识,使得分配报文标识的过程更快。
需要说明的是,上述步骤S21-步骤S22,以及步骤S31-步骤S33,两种实施例可单独使用,也可以结合使用,若将二者结合,既为不同类型的报文设置不同的哈希函数,又为不同类型的报文划分不同的发号序列段,可以更好地避免哈希冲突,更快为目标报文分发报文标识,但是将两者结合成本较高,在具体实施时可以根据实际情况选择合适的实施方式。
在一具体实施例中,随着报文数量越来越多,数据库表中的数据量越来越大,会影响对数据库表的查询和插入,因此会对数据库表进行定期清除,保证对目标报文的正常发号。
在一可选实施例中,上述步骤S30包括:根据所述哈希值和第二预留序列段生成所述目标报文的报文标识。发号空间包括第二预留序列段和第三预留序列段,第二预留序列段用于为本发明实施例提供的报文标识生成方法提供发号序列,第三预留序列段用于为原始报文标识生成方法提供发号序列。在执行上述步骤S20计算得到目标报文的哈希值后,结合哈希值从第二预留序列段中获取序列号作为目标报文的标识,通过目前现有的方法生成目标报文的标识时,从第三预留序列段中获取序列号作为目标报文的标识,从而使得本发明实施例的报文标识生成方法和原始的报文生成方法能够配合使用。在一具体实施例中,实施本发明实施例提供的报文标识生成方法需采用新的发号装置,而报文数量较多,一次性从旧发号装置迁移到新发号装置工作量较大,因此从旧发号装置到新法号装置的迁移过程按迭代排期迁移,短期内新旧发号装置应共存。原发号装置是从0开始生成序列,依次递增,到达阈值后重新从0开始,因此可在1亿发号序列前部预留200万个数(0-2000000),原发号装置在前200万个数(相当于上述第三预留序列段)中递增,新发号装置在200w以后(相当于上述第二预留序列段)发号,如此,逐步利用新发号装置代理旧发号装置。
本发明实施例提供的报文标识生成方法,为新旧发号装置提供了过渡方案,减轻了新发号装置前期采用本发明实施例提供的报文标识生成方法生成报文标识时的压力,在保证发号效率的前提下完成报文标识生成方法的过渡。
在一具体实施例中,本发明实施例提供的报文标识生成方法适用于不同的执行终端,例如,本发明实施例提供的报文标识生成方法可用于银行,当本发明实施例提供的报文标识用于银行系统时,银行系统的系统架构如图7所示,在该架构中,在实现层抽象出算法策略接口,用于控制流程和算法解耦。
如图7所示的架构中包括发号流程、标识号管控模块、策略库;标识号管控模块用于生成报文标识,以及对报文标识进行管理,发号流程用于调用标识管控模块,策略库用于存储报文标识生成策略,标识号管控模块通过调用策略库中的策略生成报文标识。
标识号管控模块包括统一存储子模块、号段分配子模块、定期清理子模块、报文关联子模块、标识号唯一子模块。统一存储子模块用于将报文和报文标识对应存储于数据库表中;号段分配子模块用于为报文序列号分配初始序列段,为不同类型的报文分配不同的序列段,在初始序列段中分配第一预留序列段、第二预留序列段、第三预留序列段等;定期清理子模块用于定期清理数据库表中存储的报文和报文标识,在一具体实施例中,定期清理子模块一个月完成一次数据库表的清理;报文关联子模块用于将目标报文与生成的报文标识相关联;标识号唯一子模块用于将生成的目标报文的内容、目标报文的报文标识与数据库表中的报文及报文标识进行比较,当目标报文的报文标识唯一时,通过统一存储子模块将目标和报文标识对应存储于数据库表中。
发号流程包括业务路由和参数控制模块,业务路由用于根据业务需求完成对标识号管控模块中各子模块的路由,从而完成该业务;参数控制模块用于控制执行业务时所用的各参数。
策略库中存储有默认策略和自定义策略。标识号管控模块通过策略库中存储的策略生成或管理报文标识。在一具体实施例中,策略库中的策略可以是不同类型的报文对应不同的哈希函数,在利用该策略生成报文标识时,根据与目标报文的报文类型相对应的哈希函数生成目标报文的标识。
如图7所示系统架构中还包括标准接口,标准接口连接有算法评价模块、自定义算法模块、发号服务模块、多业务线模块、应急预案模块、个性化配置模块;算法评价模块用于对哈希算法进行评价,并输出评价结果,用户可根据评价结果调整用于生成报文标识的哈希算法;自定义算法模块用于制定自定义算法;发号服务模块用于接收发号请求,以及输出通过发号流程、策略库、标识号管控模块生成的报文标识;图7所示的架构中可通过发号流程、策略库、标识号管控模块执行多种业务,执行不同业务时可以通过多业务线模块中的不同业务线对外连接;应急预案模块中存储有多个预案,当图7所示的架构出现问题时,通过应急预案模块获取相应预案,并根据预案解决该问题。
如图7所示系统架构中还包括平滑迁移方案,用于实现新旧发号器的平滑过渡。
如图7所示的架构中还包括有数据库、数据库安全删除接口、算法库。数据库用于存储报文和报文标识;数据库安全删除接口用于为对数据库的操作提供接口,用户通过数据安全删除接口删除数据库中的数据;算法库用于存储本发明实施例提供的报文标识生成方法所用的算法。
实施例2
本发明实施例提供了一种报文标识生成装置,如图8所示,包括:
报文获取模块10,用于获取目标报文,并将目标报文的版本号设置为初始值,详细描述见上述实施例1中对步骤S10的描述。
哈希计算模块20,基于目标报文的内容和版本号的值进行哈希计算,得到目标报文的哈希值,详细描述见上述实施例1中对步骤S20的描述。
报文标识生成模块30,用于根据哈希值生成目标报文的报文标识,详细描述见上述实施例1中对步骤S30的描述。
本发明实施例提供的报文标识生成装置,通过对目标报文的内容和版本号进行哈希计算,得到哈希值,然后基于哈希值生成目标报文的报文标识,由于目标报文的报文标识是基于其本身内容产生的,并不依赖于数据库,因此即使机房出现故障,数据库同步不稳定,也可以为目标报文创建唯一报文标识,避免了为目标报文分配多个不同报文标识或漏分配报文标识的问题。
实施例3
本发明实施例提供一种计算机设备,如图9所示,该计算机设备主要包括一个或多个处理器41以及存储器42,图9中以一个处理器41为例。
该计算机设备还可以包括:输入装置43和输出装置44。
处理器41、存储器42、输入装置43和输出装置44可以通过总线或者其他方式连接,图9中以通过总线连接为例。
处理器41可以为中央处理器(Central Processing Unit,CPU)。处理器41还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。存储器42可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据报文标识生成装置的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器42可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至报文标识生成装置。输入装置43可接收用户输入的计算请求(或其他数字或字符信息),以及产生与报文标识生成装置有关的键信号输入。输出装置44可包括显示屏等显示设备,用以输出计算结果。
实施例4
本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质存储计算机指令,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的报文标识生成方法。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(FlashMemory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (9)
1.一种报文标识生成方法,其特征在于,包括:
获取目标报文,并将所述目标报文的版本号设置为初始值;
基于所述目标报文的内容和所述版本号的值进行哈希计算,得到所述目标报文的哈希值;
根据所述哈希值生成所述目标报文的报文标识;
在所述根据所述哈希值生成所述目标报文的报文标识的步骤之后,还包括:
判断数据库表中是否存在报文标识与所述目标报文的报文标识相同的报文;
在所述数据库表中存在报文标识与所述目标报文的报文标识相同的报文的情况下,判断所述报文的内容是否与所述目标报文的内容相同;
在所述报文的内容与所述目标报文的内容不相同的情况下,更新所述版本号的值,并基于所述目标报文的内容和更新后的版本号的值重新计算所述目标报文的哈希值,根据重新计算得到的哈希值生成所述目标报文的报文标识,直到所述数据库表中不存在与所述目标报文的报文标识相同、但是内容不相同的报文。
2.根据权利要求1所述的报文标识生成方法,其特征在于,在所述根据所述哈希值生成所述目标报文的报文标识的步骤之后,还包括:
判断数据库表中是否存在报文标识与所述目标报文的报文标识相同的报文;
在所述数据库表中不存在报文标识与所述目标报文的报文标识相同的报文的情况下,将所述目标报文及与所述目标报文的报文标识对应存储于所述数据库表。
3.根据权利要求1所述的报文标识生成方法,其特征在于,
在更新所述版本号的值的步骤之后,所述基于所述目标报文的内容和更新后的版本号的值重新计算所述目标报文的哈希值的步骤之前,还包括:
判断所述版本号的更新次数是否大于预设值;
若所述版本号的更新次数大于所述预设值,根据第一预留序列段生成所述目标报文的报文标识。
4.根据权利要求1所述的报文标识生成方法,其特征在于,所述基于所述目标报文的内容和所述版本号的值进行哈希计算,得到所述目标报文的哈希值的步骤包括:
获取所述目标报文的报文类型,并确定与所述报文类型相对应的目标哈希函数;
以所述目标哈希函数对所述目标报文的内容和版本号的值进行哈希计算,得到所述目标报文的哈希值。
5.根据权利要求1所述的报文标识生成方法,其特征在于,不同类型的目标报文对应不同的序列段;
所述根据所述哈希值生成所述目标报文的报文标识的步骤包括:
获取所述目标报文的报文类型;
获取与所述目标报文的类型相对应的序列段;
根据所述哈希值和所述序列段生成所述目标报文的报文标识。
6.根据权利要求1-5任一项所述的报文标识生成方法,其特征在于,所述根据所述哈希值生成所述目标报文的报文标识的步骤包括:
根据所述哈希值和第二预留序列段生成所述目标报文的报文标识。
7.一种报文标识生成装置,其特征在于,包括:
报文获取模块,用于获取目标报文,并将所述目标报文的版本号设置为初始值;
哈希计算模块,基于所述目标报文的内容和所述版本号的值进行哈希计算,得到所述目标报文的哈希值;
报文标识生成模块,用于根据所述哈希值生成所述目标报文的报文标识;
所述报文标识生成装置还用于:
判断数据库表中是否存在报文标识与所述目标报文的报文标识相同的报文;在所述数据库表中存在报文标识与所述目标报文的报文标识相同的报文的情况下,判断所述报文的内容是否与所述目标报文的内容相同;在所述报文的内容与所述目标报文的内容不相同的情况下,更新所述版本号的值,并基于所述目标报文的内容和更新后的版本号的值重新计算所述目标报文的哈希值,根据重新计算得到的哈希值生成所述目标报文的报文标识,直到所述数据库表中不存在与所述目标报文的报文标识相同、但是内容不相同的报文。
8.一种计算机设备,其特征在于,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,从而执行如权利要求1-6中任一项所述的报文标识生成方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如权利要求1-6中任一项所述的报文标识生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010451139.3A CN113726830B (zh) | 2020-05-25 | 2020-05-25 | 一种报文标识生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010451139.3A CN113726830B (zh) | 2020-05-25 | 2020-05-25 | 一种报文标识生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113726830A CN113726830A (zh) | 2021-11-30 |
CN113726830B true CN113726830B (zh) | 2023-09-12 |
Family
ID=78671177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010451139.3A Active CN113726830B (zh) | 2020-05-25 | 2020-05-25 | 一种报文标识生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113726830B (zh) |
Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103414701A (zh) * | 2013-07-25 | 2013-11-27 | 华为技术有限公司 | 一种规则匹配方法及设备 |
CN103581044A (zh) * | 2013-11-04 | 2014-02-12 | 汉柏科技有限公司 | 一种流量统计方法和装置 |
WO2014101894A1 (zh) * | 2012-12-31 | 2014-07-03 | 华为技术有限公司 | 一种确定缓存策略的方法及设备 |
CN104168201A (zh) * | 2014-08-06 | 2014-11-26 | 福建星网锐捷网络有限公司 | 一种多路径转发的方法及装置 |
CN105447023A (zh) * | 2014-08-25 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 业务标识生成方法和装置 |
CN105553662A (zh) * | 2014-10-29 | 2016-05-04 | 航天信息股份有限公司 | 基于标识密码的动态数字版权保护方法和系统 |
CN106961393A (zh) * | 2017-03-06 | 2017-07-18 | 北京安博通科技股份有限公司 | 网络会话中udp报文的检测方法及装置 |
WO2017215446A1 (zh) * | 2016-06-13 | 2017-12-21 | 中兴通讯股份有限公司 | 接口扩展设备的配置信息通告方法、配置方法及相应装置 |
WO2017219848A1 (zh) * | 2016-06-22 | 2017-12-28 | 中兴通讯股份有限公司 | 分布式数据库中id的处理方法、管理系统及服务器 |
KR101849920B1 (ko) * | 2017-05-25 | 2018-04-19 | 주식회사 코인플러그 | 머클 트리 구조를 사용하여 m of n 다중 서명에 의한 인증서 서비스를 제공하는 방법 및 이를 이용한 서버 |
CN107992538A (zh) * | 2017-11-24 | 2018-05-04 | 银联商务股份有限公司 | 报文日志生成方法、装置、查询方法及信息处理系统 |
WO2018166293A1 (zh) * | 2017-03-17 | 2018-09-20 | 华为技术有限公司 | 安全保活的方法、设备以及系统 |
CN109727127A (zh) * | 2018-05-14 | 2019-05-07 | 网联清算有限公司 | 清算方法、装置及电子设备 |
CN109981476A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 一种负载均衡方法和装置 |
CN110048961A (zh) * | 2019-04-24 | 2019-07-23 | 盛科网络(苏州)有限公司 | 基于asic的重复报文检测方法及系统 |
CN110138626A (zh) * | 2019-07-10 | 2019-08-16 | 江苏金恒信息科技股份有限公司 | 一种对终端设备进行监控的系统、方法及装置 |
CN110166242A (zh) * | 2019-05-22 | 2019-08-23 | 吉林亿联银行股份有限公司 | 报文传输方法及装置 |
CN110177154A (zh) * | 2019-06-17 | 2019-08-27 | 深圳前海微众银行股份有限公司 | 一种文件交互处理方法、装置及系统 |
CN110309668A (zh) * | 2019-05-16 | 2019-10-08 | 深圳市白唇鹿科技有限公司 | 多平台数据管理方法、装置、计算机设备和存储介质 |
CN110928609A (zh) * | 2020-01-20 | 2020-03-27 | 武汉斗鱼鱼乐网络科技有限公司 | 一种标记设备的方法、装置、介质及计算机设备 |
WO2020077867A1 (zh) * | 2018-10-18 | 2020-04-23 | 平安科技(深圳)有限公司 | 一种通信链路的建立方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2825209A1 (fr) * | 2001-05-23 | 2002-11-29 | Thomson Licensing Sa | Dispositifs et procede de securisation et d'identification de messages |
US8850206B2 (en) * | 2011-11-15 | 2014-09-30 | Apple Inc. | Client-server system with security for untrusted server |
US8839401B2 (en) * | 2012-06-07 | 2014-09-16 | Proofpoint, Inc. | Malicious message detection and processing |
CN105701098B (zh) * | 2014-11-25 | 2019-07-09 | 国际商业机器公司 | 针对数据库中的表生成索引的方法和装置 |
CN104717132B (zh) * | 2015-02-13 | 2017-10-13 | 腾讯科技(深圳)有限公司 | 消息发送方法、装置和系统 |
US10122734B2 (en) * | 2016-11-29 | 2018-11-06 | At&T Intellectual Property I, L.P. | Secure email verification service |
-
2020
- 2020-05-25 CN CN202010451139.3A patent/CN113726830B/zh active Active
Patent Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014101894A1 (zh) * | 2012-12-31 | 2014-07-03 | 华为技术有限公司 | 一种确定缓存策略的方法及设备 |
CN103414701A (zh) * | 2013-07-25 | 2013-11-27 | 华为技术有限公司 | 一种规则匹配方法及设备 |
CN103581044A (zh) * | 2013-11-04 | 2014-02-12 | 汉柏科技有限公司 | 一种流量统计方法和装置 |
CN104168201A (zh) * | 2014-08-06 | 2014-11-26 | 福建星网锐捷网络有限公司 | 一种多路径转发的方法及装置 |
CN105447023A (zh) * | 2014-08-25 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 业务标识生成方法和装置 |
CN105553662A (zh) * | 2014-10-29 | 2016-05-04 | 航天信息股份有限公司 | 基于标识密码的动态数字版权保护方法和系统 |
WO2017215446A1 (zh) * | 2016-06-13 | 2017-12-21 | 中兴通讯股份有限公司 | 接口扩展设备的配置信息通告方法、配置方法及相应装置 |
WO2017219848A1 (zh) * | 2016-06-22 | 2017-12-28 | 中兴通讯股份有限公司 | 分布式数据库中id的处理方法、管理系统及服务器 |
CN106961393A (zh) * | 2017-03-06 | 2017-07-18 | 北京安博通科技股份有限公司 | 网络会话中udp报文的检测方法及装置 |
WO2018166293A1 (zh) * | 2017-03-17 | 2018-09-20 | 华为技术有限公司 | 安全保活的方法、设备以及系统 |
KR101849920B1 (ko) * | 2017-05-25 | 2018-04-19 | 주식회사 코인플러그 | 머클 트리 구조를 사용하여 m of n 다중 서명에 의한 인증서 서비스를 제공하는 방법 및 이를 이용한 서버 |
CN107992538A (zh) * | 2017-11-24 | 2018-05-04 | 银联商务股份有限公司 | 报文日志生成方法、装置、查询方法及信息处理系统 |
CN109981476A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 一种负载均衡方法和装置 |
CN109727127A (zh) * | 2018-05-14 | 2019-05-07 | 网联清算有限公司 | 清算方法、装置及电子设备 |
WO2020077867A1 (zh) * | 2018-10-18 | 2020-04-23 | 平安科技(深圳)有限公司 | 一种通信链路的建立方法及系统 |
CN110048961A (zh) * | 2019-04-24 | 2019-07-23 | 盛科网络(苏州)有限公司 | 基于asic的重复报文检测方法及系统 |
CN110309668A (zh) * | 2019-05-16 | 2019-10-08 | 深圳市白唇鹿科技有限公司 | 多平台数据管理方法、装置、计算机设备和存储介质 |
CN110166242A (zh) * | 2019-05-22 | 2019-08-23 | 吉林亿联银行股份有限公司 | 报文传输方法及装置 |
CN110177154A (zh) * | 2019-06-17 | 2019-08-27 | 深圳前海微众银行股份有限公司 | 一种文件交互处理方法、装置及系统 |
CN110138626A (zh) * | 2019-07-10 | 2019-08-16 | 江苏金恒信息科技股份有限公司 | 一种对终端设备进行监控的系统、方法及装置 |
CN110928609A (zh) * | 2020-01-20 | 2020-03-27 | 武汉斗鱼鱼乐网络科技有限公司 | 一种标记设备的方法、装置、介质及计算机设备 |
Non-Patent Citations (1)
Title |
---|
视音频内容数字分发版权管理系统测试评估平台的设计与实现;陈爱民;曹建香;林卫国;隋爱娜;;广播电视信息(第S1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113726830A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104090806B (zh) | 升级包、升级请求的处理方法及装置 | |
CN111262726B (zh) | 一种配置信息更新方法、装置及计算机可读存储介质 | |
CN112559908B (zh) | 数据标识生成方法、装置、设备、介质和程序产品 | |
CN104636286A (zh) | 用于数据访问的方法和设备 | |
CN113127564B (zh) | 一种参数同步方法和装置 | |
CN111722918A (zh) | 业务标识码生成方法、装置、存储介质及电子设备 | |
WO2019080232A1 (zh) | 工作流系统中的任务信息传输方法、装置和计算机设备 | |
CN107211003A (zh) | 分布式存储系统及管理元数据的方法 | |
CN103716384A (zh) | 跨数据中心实现云存储数据同步的方法和装置 | |
CN111078693B (zh) | 用于生成数据库记录主键的方法和装置 | |
CN111291062B (zh) | 数据同步写入方法、装置、计算机设备及存储介质 | |
CN110290228B (zh) | 一种互联网协议ip地址分配方法及装置 | |
CN111737204A (zh) | 文件目录遍历方法、装置、设备和介质 | |
CN113726830B (zh) | 一种报文标识生成方法及装置 | |
CN112527496B (zh) | 序号分配服务系统、序号分配方法、服务器及存储介质 | |
CN113918648A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN109981715A (zh) | 一种会话管理的方法及装置 | |
CN109542841B (zh) | 集群中创建数据快照的方法及终端设备 | |
CN116388916A (zh) | 时间戳分配方法、设备、存储介质和系统 | |
CN111309733A (zh) | 增量数据抽取处理方法及装置、计算机设备、介质 | |
CN113468140B (zh) | 数据迁移处理方法、电子设备及计算机可读存储介质 | |
US11386043B2 (en) | Method, device, and computer program product for managing snapshot in application environment | |
CN114675954A (zh) | 任务调度方法及装置 | |
CN115269530A (zh) | 数据同步方法、电子设备及计算机可读存储介质 | |
CN113742254A (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 |