CN111651695A - 一种短链接的生成与解析方法及装置 - Google Patents
一种短链接的生成与解析方法及装置 Download PDFInfo
- Publication number
- CN111651695A CN111651695A CN202010473854.7A CN202010473854A CN111651695A CN 111651695 A CN111651695 A CN 111651695A CN 202010473854 A CN202010473854 A CN 202010473854A CN 111651695 A CN111651695 A CN 111651695A
- Authority
- CN
- China
- Prior art keywords
- link
- short link
- short
- character string
- incrementer
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9558—Details of hyperlinks; Management of linked annotations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及金融科技(Fintech)领域,公开一种短链接的生成与解析方法及装置,接收短链接生成请求;该请求中包括长链接;为该请求分配第一发号器;第一发号器为多个发号器中的一个,标号各不同;根据多个递增器的运行状态,为该请求确定第一递增器;根据第一发号器的标号和第一递增器产生的递增序号,生成短链接。该方案在生成请求数额巨大时,通过为请求分配合适的第一发号器,因发号器标号不相同,有助于保证数额巨大的长链接对应的短链接在一定程度上的差异性;此外,根据递增器的运行状态,为请求分配合适的第一递增器,从而保证即使生成请求数额巨大,短链接生成系统可以用一种效率最佳的状态来同时处理这些请求,带来高并发的效果。
Description
技术领域
本申请实施例涉及金融科技(Fintech)领域,尤其涉及一种短链接的生成与解析方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术(例如:大数据、云计算或区块链)应用在金融领域,传统金融业正在逐步向金融科技转变,大数据技术也不例外。但由于金融、支付行业的安全性、实时性要求,也对大数据技术提出了更高的要求。
短链接,即将长链接缩短到一个很短的链接,用户通过访问这个短链接就可以重定向到原本的长链接(也就是还原的过程),通过这种方式可以达到便于记忆和转换的目的。常用于有字数限制的微博、二维码场景。
目前,普遍使用发号器算法,以实现将长链接转换为短链接。做法如下:
1、当短链接转换系统接收到用户发出的将某一长链接转换为短链接的生成请求后,发号器则会根据最新一个已经被处理的生成请求的序号,为本次的生成请求递增产生一个数值;
2、短链接转换系统根据发号器产生数值,将该数值转换为62进制(0-9a-zA-Z);
3、短链接转换系统将产生的62进制的值作为本次的短链接地址,并和本次的长链接形成一组映射数据,并将该组映射数据存储于Mysql数据库中。
针对上述技术方案,具有以下缺点:由于发号器按递增序号产生数值,并发性能比较低;因而,当短链接生成请求的数据量很大时,则会造成性能瓶颈,用户体验感差。
因此,现有技术无法提供一种并发性能良好的短链接生成的技术。
发明内容
本申请提供一种短链接的生成与解析的方法及装置,用以解决在生成短链接时出现的并发新能瓶颈的技术问题。
第一方面,本申请实施例提供一种短链接的生成方法,该方法包括:接收短链接生成请求;所述短链接生成请求中包括长链接;为所述短链接生成请求分配第一发号器;其中,所述第一发号器为多个发号器中的一个;根据多个递增器的运行状态,为所述短链接生成请求确定第一递增器;其中,所述第一递增器为多个递增器中的一个;根据所述第一发号器的标号和所述第一递增器产生的递增序号,生成所述长链接对应的短链接;其中,所述多个发号器的标号各不同。
该方案中,当短链接转换系统接收到短链接生成请求时,通过为该请求组分配第一发号器;进一步地,根据递增器的运行状态,确定了为该请求进行发号的第一递增器;从而可以根据第一发号器的标号和第一递增器产生的递增序号,生成该请求对应的短链接。该方案中在短链接生成请求数额巨大时,通过为请求分配合适的第一发号器,由于发号器的标号不尽相同,从而有助于保证数额巨大的这些长链接对应的短链接在一定程度上的差异性;进一步的,根据递增器的运行状态,有助于为请求分配合适的第一递增器,从而保证了即使短链接生成请求数额巨大时,短链接转换系统可以用一种效率最佳的状态来同时处理这些请求,可带来高并发的效果。
在一种可能的实现方法中,所述根据所述第一发号器的标号和所述第一递增器产生的递增序号,生成所述长链接对应的短链接,包括:根据所述第一发号器的标号,确定第一字符串;根据所述递增序号,确定第二字符串;根据所述第一字符串、所述第二字符串和盐值,确定第三字符串;根据所述第一字符串、所述第二字符串和所述第三字符串,生成所述短链接。
基于该方案,由于短链接通过三部分组成,分别为第一字符串、第二字符串和第三字符串;其中,第一字符串是根据第一发号器的标号来确定的,可以理解的是,对于同时进入短链接转换系统的两条短链接生成请求来说,在各自的第一发号器不同的情况下,很大程度上可以保证两者所生成的短链接不同;其中,第二字符串是根据第一递增器所产生的递增序号来确定的,并且在第一递增器产生递增序号之前,还会根据递增器的运行状态来为不同的短链接生成请求确定最适宜的第一递增器,从而保证了高并发的效果;其中,第三字符串是根据第一字符串、第二字符串和盐值共同确定的,由于在实际使用过程中,盐值的随机性使得第三字符串具有了校验的功能,从而根据第一字符串、第二字符串和第三字符串所确定的短链接带有防攻击的性能。
在一种可能的实现方法中,所述根据所述第一字符串、所述第二字符串和所述第三字符串,生成所述短链接,包括:将所述第一字符串、所述第二字符串和所述第三字符串依次拼接,生成所述短链接。
在一种可能的实现方法中,所述短链接生成请求为多个,包括第一短链接生成请求和第二短链接生成请求;其中,所述第一短链接生成请求对应所述第一发号器和所述第一递增器;所述第二短链接生成请求对应第二发号器和第二递增器;所述第二发号器为所述多个发号器中除所述第一发号器之外的发号器;所述第二递增器为所述多个递增器中除所述第一递增器之外的递增器。
基于该方案,当短链接转换系统中同时涌入了大量的短链接生成请求时,综合评估短链接生成系统中的多个发号器以及多个递增器的运行状态后,通过将不同的短链接分配至不同的发号器和不同的递增器上,从而带来高并发的效果。
第二方面,本申请实施提供一种短链接的解析方法,该方法包括:接收短链接解析请求;其中,所述短链接解析请求包括短链接;所述短链接是根据第一发号器的标号和第一递增器产生的递增序号生成的;所述第一发号器为多个发号器中的一个且多个发号器的标号各不同,所述第一递增器为多个递增器中的一个;从长链接与短链接的映射关系中确定所述短链接对应的长链接。
基于该方案,当短链接转换系统接收到短链接解析请求时,该短链接解析请求中包括待解析的短链接,短链接是根据第一发号器的标号和第一递增器产生的递增序号生成的,通过从长链接与短连接的映射关系中即可确定待解析的短链接对应的长链接。
在一种可能的实现方法中,所述从长链接与短链接的映射关系中确定所述短链接对应的长链接之前,还包括:根据所述短链接的第一字符串、所述短链接的第二字符串及盐值,生成第四字符串;将所述第四字符串与所述短链接的第三字符串进行比较,并确定所述第四字符串与所述第三字符串一致。
基于该方案,在对待解析的短链接进行解析时,通过对待解析的短链接的第一字符串和第二字符串,以及结合短链接转换系统预设的盐值,进行计算,得到第四字符串;随后将第四字符串与待解析的短连接的第三字符串进行比较,在确认第四字符串与第三字符串一致时,从而短链接转换系统才可以对待解析的短链接执行转换为长链接的操作,否则认为待解析的短链接为攻击系统的恶意链接,对其进行过滤,从而保证了短链接转换系统的不受恶意链接的攻击,实现了短链接转换系统的高可用性以及稳定性。
在一种可能的实现方法中,所述从长链接与短链接的映射关系中确定所述短链接对应的长链接,包括:从内存中的长链接与短链接的第一映射关系中查找所述短链接对应的长链接;若未查找到,则从外部存储器中的长链接与短链接的第二映射关系中查找所述短链接对应的长链接。
基于该方案,在确认待解析的短链接为正常链接后,首先通过在内存中的长链接与短链接的第一映射关系中查找待解析的短链接对应的长链接,当可以在第一映射关系中查找到待解析的短链接对应的长链接时,则可以直接重定向至短链接对应的长链接,而无须再去外部存储器中的长链接与短链接的第二映射关系中查找。因此,通过在内存中存储第一映射关系,当有短链接解析请求进入到短链接转换系统中时,可以实现快速查找,避免了每次都去外部存储器中的第二映射关系中查找,减轻了外部存储器的压力。可以理解的是,第一映射关系为第二映射关系的一个子集。
第三方面,本申请实施例提供一种短链接的生成装置,该装置包括:接收单元,用于接收短链接生成请求;所述短链接生成请求中包括长链接;分配单元,用于为所述短链接生成请求分配第一发号器;其中,所述第一发号器为多个发号器中的一个;确定单元,用于根据多个递增器的运行状态,为所述短链接生成请求确定第一递增器;其中,所述第一递增器为多个递增器中的一个;转换单元,用于根据所述第一发号器的标号和所述第一递增器产生的递增序号,生成所述长链接对应的短链接;其中,所述多个发号器的标号各不同。
该方案中,当短链接转换系统接收到短链接生成请求时,通过为该请求组分配第一发号器;进一步地,根据递增器的运行状态,确定了为该请求进行发号的第一递增器;从而可以根据第一发号器的标号和第一递增器产生的递增序号,生成该请求对应的短链接。该方案中在短链接生成请求数额巨大时,通过为请求分配合适的第一发号器,由于发号器的标号不尽相同,从而有助于保证数额巨大的这些长链接对应的短链接在一定程度上的差异性;进一步的,根据递增器的运行状态,有助于为请求分配合适的第一递增器,从而保证了即使短链接生成请求数额巨大时,短链接转换系统可以用一种效率最佳的状态来同时处理这些请求,可带来高并发的效果。
在一种可能的实现方法中,所述转换单元,具体用于根据所述第一发号器的标号,确定第一字符串;根据所述递增序号,确定第二字符串;根据所述第一字符串、所述第二字符串和盐值,确定第三字符串;根据所述第一字符串、所述第二字符串和所述第三字符串,生成所述短链接。
基于该方案,由于短链接通过三部分组成,分别为第一字符串、第二字符串和第三字符串;其中,第一字符串是根据第一发号器的标号来确定的,可以理解的是,对于同时进入短链接转换系统的两条短链接生成请求来说,在各自的第一发号器不同的情况下,很大程度上可以保证两者所生成的短链接不同;其中,第二字符串是根据第一递增器所产生的递增序号来确定的,并且在第一递增器产生递增序号之前,还会根据递增器的运行状态来为不同的短链接生成请求确定最适宜的第一递增器,从而保证了高并发的效果;其中,第三字符串是根据第一字符串、第二字符串和盐值共同确定的,由于在实际使用过程中,盐值的随机性使得第三字符串具有了校验的功能,从而根据第一字符串、第二字符串和第三字符串所确定的短链接带有防攻击的性能。
在一种可能的实现方法中,所述转换单元,具体用于将所述第一字符串、所述第二字符串和所述第三字符串依次拼接,生成所述短链接。
在一种可能的实现方法中,所述短链接生成请求为多个,包括第一短链接生成请求和第二短链接生成请求;其中,所述第一短链接生成请求对应所述第一发号器和所述第一递增器;所述第二短链接生成请求对应第二发号器和第二递增器;所述第二发号器为所述多个发号器中除所述第一发号器之外的发号器;所述第二递增器为所述多个递增器中除所述第一递增器之外的递增器。
基于该方案,当短链接转换系统中同时涌入了大量的短链接生成请求时,综合评估短链接生成系统中的多个发号器以及多个递增器的运行状态后,通过将不同的短链接分配至不同的发号器和不同的递增器上,从而带来高并发的效果。
第四方面,本申请实施例提供一种短链接的解析装置,该装置包括:接收单元,用于接收短链接解析请求;其中,所述短链接解析请求包括短链接;所述短链接是根据第一发号器的标号和第一递增器产生的递增序号生成的;所述第一发号器为多个发号器中的一个且多个发号器的标号各不同,所述第一递增器为多个递增器中的一个;确定单元,用于从长链接与短链接的映射关系中确定所述短链接对应的长链接。
基于该方案,当短链接转换系统接收到短链接解析请求时,该短链接解析请求中包括待解析的短链接,短链接是根据第一发号器的标号和第一递增器产生的递增序号生成的,通过从长链接与短连接的映射关系中即可确定待解析的短链接对应的长链接。
在一种可能的实现方法中,所述确定单元,还用于根据所述短链接的第一字符串、所述短链接的第二字符串及盐值,生成第四字符串;将所述第四字符串与所述短链接的第三字符串进行比较,并确定所述第四字符串与所述第三字符串一致。
基于该方案,在对待解析的短链接进行解析时,通过对待解析的短链接的第一字符串和第二字符串,以及结合短链接转换系统预设的盐值,进行计算,得到第四字符串;随后将第四字符串与待解析的短连接的第三字符串进行比较,在确认第四字符串与第三字符串一致时,从而短链接转换系统才可以对待解析的短链接执行转换为长链接的操作,否则认为待解析的短链接为攻击系统的恶意链接,对其进行过滤,从而保证了短链接转换系统的不受恶意链接的攻击,实现了短链接转换系统的高可用性以及稳定性。
在一种可能的实现方法中,所述确定单元,具体用于从内存中的长链接与短链接的第一映射关系中查找所述短链接对应的长链接;若未查找到,则从外部存储器中的长链接与短链接的第二映射关系中查找所述短链接对应的长链接。
基于该方案,在确认待解析的短链接为正常链接后,首先通过在内存中的长链接与短链接的第一映射关系中查找待解析的短链接对应的长链接,当可以在第一映射关系中查找到待解析的短链接对应的长链接时,则可以直接重定向至短链接对应的长链接,而无须再去外部存储器中的长链接与短链接的第二映射关系中查找。因此,通过在内存中存储第一映射关系,当有短链接解析请求进入到短链接转换系统中时,可以实现快速查找,避免了每次都去外部存储器中的第二映射关系中查找,减轻了外部存储器的压力。可以理解的是,第一映射关系为第二映射关系的一个子集。
第五方面,本申请实施例提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如第一方面和第三方面的任一实现方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面和第三方面的任一实现方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种短链接的生成方法;
图2为本发明实施例提供的一种短链接的解析方法;
图3为本发明实施例提供的一种短链接的解析时序图;
图4为本申请实施例提供的一种短链接的生成装置;
图5为本申请实施例提供的一种短链接的解析装置。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
现实生活中,存在很多需要使用到短链接的场景。比如,商家A在线上新推出了一个产品,用户对该产品的信息进行了解时,可以通过点击商家A对该产品设定的链接来实现。一般而言,该链接为一个长链接。但是长链接不够简洁,也不便于用户进行记忆。由此,产生了对长链接进行转换,得到对应的短链接的需求。在实现了将一个长链接转换为对应的短链接后,用户通过点击该短链接,依然可以访问到长链接对应的内容。
如图1所示,为本申请实施例提供的一种短链接的生成方法,该方法包括:
步骤101,接收短链接生成请求;所述短链接生成请求中包括长链接;
步骤102,为所述短链接生成请求分配第一发号器;其中,所述第一发号器为多个发号器中的一个;
步骤103,根据多个递增器的运行状态,为所述短链接生成请求确定第一递增器;其中,所述第一递增器为多个递增器中的一个;
步骤104,根据所述第一发号器的标号和所述第一递增器产生的递增序号,生成所述长链接对应的短链接;其中,所述多个发号器的标号各不同。
在上述步骤101中,用于接收短链接生成请求的系统,一方面可以实现将所接收到的长链接转换为一个唯一对应的短链接,另一方面也可以实现对接收到的短链接进行转换并得到对应的长链接,该系统称之为短链接转换系统。
对于短链接转换系统所接收到的短链接生成请求,其中包括了待转换的长链接。
作为一种可能实现的方式,短链接转换系统接收到的短链接生成请求为多个。也即,短链接转换系统中同时涌入了数额巨大的短链接生成请求,以希望短链接转换系统可以在尽量短的时间内实现对这些待转换的长链接进行转换,以提升用户体验感。
在上述步骤102中,为短链接生成请求分配第一发号器。
举个例子,如短链接转换系统同时进入2条短链接生成请求,分别记为请求B和请求C;短链接转换系统中被设置有5个发号器,以示区别,标号分别记为1-5号。则,对于请求B和请求C的第一发号器具体为5个发号器中的哪一个,短链接转换系统首先需要确定5个发号器的工作状态为何。在确定发号器的状态后,从而为请求B和请求C分配第一发号器。可能存在以下情形:
情形1、如1-5号的发号器均处于空闲状态,且这些发号器彼此之间的性能无明显区别,则通过随机分配的方式,为请求B和请求C分别分配一个发号器,如为请求B分配的发号器可以为1号发号器,以及为请求C分配的发号器可以为2号发号器;这里的1号发号器和2号发号器均可以称为第一发号器;
情形2、如1-5号的发号器存在至少两个发号器均处于空闲状态,且这些发号器彼此之间的性能无明显区别,则通过随机分配的方式,为请求B和请求C分别分配一个发号器。如1-5号的发号器中1号发号器和2号发号器均处于空闲状态,则通过随机分配的方式,为请求B分配的发号器可以为1号发号器,以及为请求C分配的发号器可以为2号发号器;这里的1号发号器和2号发号器均可以称为第一发号器;
情形3、如1-5号中的发号器仅存在一个发号器处于空闲状态,作为示例,设1号发号器为处于空闲状态的发号器。则一种实现方式可以是为请求B和请求C分配的发号器均为1号发号器;又一种实现方式是为请求B分配的发号器为1号发号器,为请求C分配的发号器为除去1号发号器之外的、其余非空闲状态的发号器中的一个发号器X,至于发号器X具体为2-5号中的哪一个发号器,还需要短链接转换系统根据2-5号的发号器的实际工作情况进行确定。
在上述步骤103中,在短链接转换系统处理短链接生成请求时,需要确定最适宜产生递增序号的机器,也即第一递增器。
如前述的例子,设为请求B分配的是1号发号器,为请求C分配的是2号发号器,则需要进一步确定用于为请求B产生递增序号的机器Y,为请求C产生递增序号的机器Z,这里的机器Y和机器Z均为第一递增器。
如短链接转换系统中被设置有4个递增器,则机器Y和机器Z的确定,可能有如下情形:
情形1、当1-4号递增器中的任一编号的递增器为空闲状态时,且1-4号递增器中的任一编号的递增器彼此之间的处理事务的性能无明显区别,则为请求B所确定的递增器为1-4号中的任一编号的递增器,为请求C所确定的递增器为除去为请求B服务的编号的递增器之外的任一编号的递增器,如为请求B所确定的递增器为1号编号的递增器,为请求C所确定的递增器为2号编号的递增器。这里的1号编号的递增器相当于机器Y,也即第一递增器,2号编号的递增器相当于机器Z,也即第一递增器;
情形2、当1-4号递增器中存在至少两个编号的递增器为空闲状态,且递增器彼此之间的性能无明显区别,则为请求B确定的机器Y和请求C确定的机器Z的编号不同。如1-4号递增器中1号和2号均处于空闲状态,则通过随机分配的方式,为请求B确定的递增器可以为1号编号的递增器,以及为请求C确定的递增器可以为2号编号的递增器;这里的1号编号的递增器和2号编号的递增器均可以称为第一递增器;
情形3、如1-4号递增器中仅存在一个递增器处于空闲状态,作为示例,设1号递增器为处于空闲状态的递增器。则一种实现方式可以是为请求B和请求C确定的递增器均为1号编号的递增器;又一种实现方式是为请求B确定的递增器为1号编号的递增器,为请求C确定的递增器为除去1号编号的递增器之外的、其余非空闲状态的递增器中的一个递增器L,至于递增器L具体为2-4号中的哪一个,还需要短链接转换系统根据2-4号的递增器的实际工作情况进行确定。
在上述步骤104中,短链接转换系统将长链接转换为对应的短链接时,是根据第一发号器的标号和第一递增器产生的递增序号实现的。
可选的,所述根据所述第一发号器的标号和所述第一递增器产生的递增序号,生成所述长链接对应的短链接,包括:根据所述第一发号器的标号,确定第一字符串;根据所述递增序号,确定第二字符串;根据所述第一字符串、所述第二字符串和盐值,确定第三字符串;根据所述第一字符串、所述第二字符串和所述第三字符串,生成所述短链接。
举个例子,如为请求B分配的是1号发号器,为请求C分配的是2号发号器,由于两个发号器的标号不同,从而根据第一发号器的标号,可以确定第一字符串。作为一种实现方式,通过将第一发号器的标号做62进制的转换,得到一个两位长度的字符串。如,根据1号发号器的标号“1”,得到字符串A1,根据2号发号器的标号“2”,得到字符串B1。这里的字符串A1和字符串B1即为第一字符串。
短链接转换系统根据递增器的运行状态,如为请求B确定的是1号递增器,为请求C确定的是2号递增器,从而保证了由两个递增器同时处理短链接生成请求,实现了高并发。如1号递增器为请求B产生的递增序号为1,2号递增器为请求C产生的递增序号为100,则根据递增序号,可以确定第二字符串。作为一种实现方式,通过将递增序号做62进制的转换,得到一个三位长度的字符串。如根据递增序号“1”,得到字符串A2,根据递增序号“100”,得到字符串B2。这里的字符串A2和字符串B2即为第二字符串。作为又一种实现方式,通过将递增序号做62进制的转换,得到一个四位长度的字符串。如根据递增序号“1”,得到字符串A3,根据递增序号“100”,得到字符串B3。这里的字符串A3和字符串B3即为第二字符串。
需要说明的是,对于将递增序号做62进制的转换,具体得到多大长度的字符串,本发明不做具体限定。但对于实际的场景的应用而言,字符串的长度一般取三位或者四位。如本申请实施例中以四位长度的字符串为例进行说明。
盐值为一组预设的随机数串。本申请实施例中通过引入盐值,对于不同的短链接转换系统,其盐值不相同;同一个短链接转换系统,盐值固定。
则,根据字符串A1、字符串A3和盐值,进行MD5计算,将计算结果做62进制的转换,得到第三字符串,记为字符串A4;同理,根据字符串B1、字符串B3和盐值,进行MD5计算,将计算结果做62进制的转换,得到第三字符串,记为字符串B4。第三字符串可以理解为校验位,主要用于确定短链接的合法性。
需要说明的是,对于第三字符串的长度,本发明不做限定。比如可以参考以下几点规则生成第三字符串:
规则1、在第二字符串长度较短时,则可以将第三字符串的长度相应地设置地较短一些,而在第二字符串的长度较长时,则可以将第三字符串的长度相应地设置地较长一些。
比如,在第二字符串为4位时,则可以将第三字符串的长度设置为1位;在第二字符串为8位时,则可以将第三字符串的长度设置为2位。从而,为了实现与不同长度的递增序号相匹配,校验位的长度可以动态扩展。
规则2、位于不同长度区间的第二字符串,则第三字符串对应不同的长度。
比如,在第二字符串为1-4位时,则可以将第三字符串的长度设置为1位;在第二字符串为5-8位时,则可以将第三字符串的长度设置为2位。从而,为了实现与不同长度的递增序号相匹配,校验位的长度可以动态扩展。
规则3、针对不同的业务系统,从MD5计算结果中选择不同位数上的字符构成第三字符串。
比如,对于ID1系统,从MD5计算结果中确定前2位的字符构成第三字符串;对于ID2系统,从MD5计算结果中确定末尾2位的字符构成第三字符串。从而对不同的业务系统所设置的校验位不同,确保了各个业务系统短链接生成的安全性。
关于请求B,在得到第一字符串(字符串A1)、第二字符串(字符串A3)和第三字符串(字符串A4)后,即可以生成短链接;关于请求C,在得到第一字符串(字符串B1)、第二字符串(字符串B3)和第三字符串(字符串B4)后,即可以生成短链接。
可选的,所述根据所述第一字符串、所述第二字符串和所述第三字符串,生成所述短链接,包括:将所述第一字符串、所述第二字符串和所述第三字符串依次拼接,生成所述短链接。
作为一种实现方式,如关于请求B,它经过短链接转换系统后,所生成的短链接可以为A1A3A4;关于请求C,它经过短链接转换系统后,所生成的短链接可以为B1B3B4。
作为又一种实现方式,如于请求B,它经过短链接转换系统后,所生成的短链接可以为A3A1A4;关于请求C,它经过短链接转换系统后,所生成的短链接可以为B3B1B4。
可选的,所述短链接生成请求为多个,包括第一短链接生成请求和第二短链接生成请求;其中,所述第一短链接生成请求对应所述第一发号器和所述第一递增器;所述第二短链接生成请求对应第二发号器和第二递增器;所述第二发号器为所述多个发号器中除所述第一发号器之外的发号器;所述第二递增器为所述多个递增器中除所述第一递增器之外的递增器。
当短链接转换系统同时涌入了数额巨大的短链接生成请求时,短链接转换系统根据真实的发号器的运行状态,对数额巨大的短链接生成请求划分为第一短链接生成请求和第二短链接生成请求。可以理解的是,这里的第一短链接生成请求和第二短链接生成请求并非是说将数额巨大的短链接生成请求分成了两部分,而是需要根据发号器的运行状态,短链接转换系统对数额巨大的短链接请求进行了合理的划分。为了提高对这些数额巨大的短链接请求进行并发处理,可以为第一短链接请求分配第一发号器和第一递增器,为第二短链接请求分配第二发号器和第二递增器;作为一种实现方式,第一发号器和第二发号器为不同标号的发号器,第一递增器和第二递增器为不同(编号)的递增器。
以上描述的内容,可以理解为商家A向某一个做短链接转换系统的第三方提交将新产品对应的长链接转换为短链接的请求,通过第三方所研发的短链接转换系统,实现了将商家A新产品对应的长链接转换为对应的短链接的目的。
由于短链接的存在,还会存在如下场景:用户D获取了某一短链接,他想对该短链接对应的长链接的内容进行访问,比如他获取的是商家A新产品的短链接,则根据对短链接对应的长链接进行访问,用户D可以了解到商家A新推出的产品的信息。
如图2所示,为本发明实施例提供的一种短链接的解析方法,该方法包括:
步骤201,接收短链接解析请求;其中,所述短链接解析请求包括短链接;所述短链接是根据第一发号器的标号和第一递增器产生的递增序号生成的;所述第一发号器为多个发号器中的一个且多个发号器的标号各不同,所述第一递增器为多个递增器中的一个;
步骤202,从长链接与短链接的映射关系中确定所述短链接对应的长链接。
在步骤201中,设用户D点击了商家A新产品的短链接后,则跳转至第三方所研发的短链接转换系统,也即短链接转换系统接收到短链接解析请求,用于指示访问短链接对应的长链接。其中,短链接解析请求包括短链接。
该待解析的短链接是根据第一发号器的标号和第一递增器产生的递增序号生成的,也即短链接在表现形式上为第一字符串、第二字符串和第三字符串的组合形式,比如是根据第一字符串、第二字符串和第三字符串依次拼接的方式形成短链接。
在步骤202中,短链接转换系统通过从长链接与短链接的映射关系中确定该待解析的短链接对应的长链接。
可选的,所述从长链接与短链接的映射关系中确定所述短链接对应的长链接之前,还包括:根据所述短链接的第一字符串、所述短链接的第二字符串及盐值,生成第四字符串;将所述第四字符串与所述短链接的第三字符串进行比较,并确定所述第四字符串与所述第三字符串一致。
由于第三方所研发的短链接转换系统在对商户A的长链接转换为短链接的过程中,使用了盐值,目的在于保证日后有用户发送短链接解析请求时,对待解析的短链接进行验证,判断该待解析的短链接是否为自身产生的短链接,从而可以有效防止恶意的短链接对自身短链接转换系统的攻击,保证了短链接转换系统的高可用性和稳定性。
比如,当第三方所研发的短链接转换系统接收到用户D发送的关于商户A新产品的短链接解析请求时,短链接转换系统首先会根据构成该待解析的短链接的第一字符串、第二字符串和盐值,进行MD5计算,得到第四字符串;然后短链接转换系统通过比对自己校验生成的第四字符串和构成该待解析的短链接的第三字符串,只有在第三字符串符合第四字符串后,也即确定第四字符串与第三字符串一致后,短链接转换系统才会对该待解析的短链接进行解析。
对于如何对短链接进行解析,得到对应的长链接,可以根据以下方法实现:
可选的,所述从长链接与短链接的映射关系中确定所述短链接对应的长链接,包括:从内存中的长链接与短链接的第一映射关系中查找所述短链接对应的长链接;若未查找到,则从外部存储器中的长链接与短链接的第二映射关系中查找所述短链接对应的长链接。
对于短链接的生成请求,当短链接转换系统实现了将长链接转换为短链接后,则将该短链接作为热点短链接,存储至内存型数据库中。如Redis数据库为一种内存型数据库,其中可以存储热点链接的关系数据——长链接与短链接的映射关系,便于快速取用。可以理解的是,短链接普遍存储于关系型数据库中。如MYSQL数据库为关系型数据的代表,它存储有全部的短链接的关系数据。
其中,符合以下任一要求的短链接都可以称为热点短链接,它们可以存储至内存型数据库Redis数据库中:
(1)新生成的短链接数据;
(2)根据历史记录提取请求最高的短链接数据;
(3)解析时每次从Redis中获取短链接对应的长链接数据后,对数据过期时间进行更新;
(4)当Redis中不存在时,从数据库中获取到的长链接信息,将此信息记录到Redis。
如图3所示,为本发明实施例提供的一种短链接的解析时序图,包括如下步骤:
1、获取短链接解析请求;
2、对获取到的短链接进行校验,校验不通过直接返回,通过则进行步骤3;
3、将通过校验的短链接首先在Redis中查找,如果存在则返回,不存在则进行步骤4;
4、如果Redis中不存在,通过请求后置服务,查询数据库获取短链接;
5、将获取到的短链接对应长链接信息返回,并将返回信息缓存在Redis中;
6、根据解析返回的长链接,302重定向请求到长链接。
基于同样的构思,本申请实施例提供一种短链接的生成装置,如图4所示,该装置包括接收单元401、分配单元402、确定单元403和转换单元404:
接收单元401,用于接收短链接生成请求;所述短链接生成请求中包括长链接;
分配单元402,用于为所述短链接生成请求分配第一发号器;其中,所述第一发号器为多个发号器中的一个;
确定单元403,用于根据多个递增器的运行状态,为所述短链接生成请求确定第一递增器;其中,所述第一递增器为多个递增器中的一个;
转换单元404,用于根据所述第一发号器的标号和所述第一递增器产生的递增序号,生成所述长链接对应的短链接;其中,所述多个发号器的标号各不同。
进一步地,对于该装置,转换单元404,具体用于根据所述第一发号器的标号,确定第一字符串;根据所述递增序号,确定第二字符串;根据所述第一字符串、所述第二字符串和盐值,确定第三字符串;根据所述第一字符串、所述第二字符串和所述第三字符串,生成所述短链接。
进一步地,对于该装置,转换单元404,具体用于将所述第一字符串、所述第二字符串和所述第三字符串依次拼接,生成所述短链接。
进一步地,对于该装置,所述短链接生成请求为多个,包括第一短链接生成请求和第二短链接生成请求;其中,所述第一短链接生成请求对应所述第一发号器和所述第一递增器;所述第二短链接生成请求对应第二发号器和第二递增器;所述第二发号器为所述多个发号器中除所述第一发号器之外的发号器;所述第二递增器为所述多个递增器中除所述第一递增器之外的递增器。
基于同样的构思,本申请实施例提供一种短链接的解析装置,如图5所示,该装置包括接收单元501和确定单元502:
接收单元501,用于接收短链接解析请求;其中,所述短链接解析请求包括短链接;所述短链接是根据第一发号器的标号和第一递增器产生的递增序号生成的;所述第一发号器为多个发号器中的一个且多个发号器的标号各不同,所述第一递增器为多个递增器中的一个;
确定单元502,用于从长链接与短链接的映射关系中确定所述短链接对应的长链接。
进一步地,对于该装置,确定单元502,还用于根据所述短链接的第一字符串、所述短链接的第二字符串及盐值,生成第四字符串;将所述第四字符串与所述短链接的第三字符串进行比较,并确定所述第四字符串与所述第三字符串一致。
进一步地,对于该装置,确定单元502,具体用于从内存中的长链接与短链接的第一映射关系中查找所述短链接对应的长链接;若未查找到,则从外部存储器中的长链接与短链接的第二映射关系中查找所述短链接对应的长链接。
本申请实施例还提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等。该计算设备可以包括中央处理器(Center Processing Unit,CPU)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器,可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本申请实施例中,存储器可以用于执行短链接的生成与解析的方法的程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行短链接的生成与解析的方法。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行短链接的生成与解析的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种短链接的生成方法,其特征在于,包括:
接收短链接生成请求;所述短链接生成请求中包括长链接;
为所述短链接生成请求分配第一发号器;其中,所述第一发号器为多个发号器中的一个;
根据多个递增器的运行状态,为所述短链接生成请求确定第一递增器;其中,所述第一递增器为多个递增器中的一个;
根据所述第一发号器的标号和所述第一递增器产生的递增序号,生成所述长链接对应的短链接;其中,所述多个发号器的标号各不同。
2.如权利要求1所述的方法,其特征在于,
所述根据所述第一发号器的标号和所述第一递增器产生的递增序号,生成所述长链接对应的短链接,包括:
根据所述第一发号器的标号,确定第一字符串;
根据所述递增序号,确定第二字符串;
根据所述第一字符串、所述第二字符串和盐值,确定第三字符串;
根据所述第一字符串、所述第二字符串和所述第三字符串,生成所述短链接。
3.如权利要求2所述的方法,其特征在于,
所述根据所述第一字符串、所述第二字符串和所述第三字符串,生成所述短链接,包括:
将所述第一字符串、所述第二字符串和所述第三字符串依次拼接,生成所述短链接。
4.如权利要求1所述的方法,其特征在于,
所述短链接生成请求为多个,包括第一短链接生成请求和第二短链接生成请求;
其中,所述第一短链接生成请求对应所述第一发号器和所述第一递增器;所述第二短链接生成请求对应第二发号器和第二递增器;所述第二发号器为所述多个发号器中除所述第一发号器之外的发号器;所述第二递增器为所述多个递增器中除所述第一递增器之外的递增器。
5.一种短链接的解析方法,其特征在于,包括:
接收短链接解析请求;其中,所述短链接解析请求包括短链接;所述短链接是根据第一发号器的标号和第一递增器产生的递增序号生成的;所述第一发号器为多个发号器中的一个且多个发号器的标号各不同,所述第一递增器为多个递增器中的一个;
从长链接与短链接的映射关系中确定所述短链接对应的长链接。
6.如权利要求5所述的方法,其特征在于,
所述从长链接与短链接的映射关系中确定所述短链接对应的长链接之前,还包括:
根据所述短链接的第一字符串、所述短链接的第二字符串及盐值,生成第四字符串;
将所述第四字符串与所述短链接的第三字符串进行比较,并确定所述第四字符串与所述第三字符串一致。
7.如权利要求5所述的方法,其特征在于,
所述从长链接与短链接的映射关系中确定所述短链接对应的长链接,包括:
从内存中的长链接与短链接的第一映射关系中查找所述短链接对应的长链接;
若未查找到,则从外部存储器中的长链接与短链接的第二映射关系中查找所述短链接对应的长链接。
8.一种短链接的生成装置,其特征在于,包括:
接收单元,用于接收短链接生成请求;所述短链接生成请求中包括长链接;
分配单元,用于为所述短链接生成请求分配第一发号器;其中,所述第一发号器为多个发号器中的一个;
确定单元,用于根据多个递增器的运行状态,为所述短链接生成请求确定第一递增器;其中,所述第一递增器为多个递增器中的一个;
转换单元,用于根据所述第一发号器的标号和所述第一递增器产生的递增序号,生成所述长链接对应的短链接;其中,所述多个发号器的标号各不同。
9.一种短链接的解析装置,其特征在于,包括:
接收单元,用于接收短链接解析请求;其中,所述短链接解析请求包括短链接;所述短链接是根据第一发号器的标号和第一递增器产生的递增序号生成的;所述第一发号器为多个发号器中的一个且多个发号器的标号各不同,所述第一递增器为多个递增器中的一个;
确定单元,用于从长链接与短链接的映射关系中确定所述短链接对应的长链接。
10.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如权利要求1-4或5-7任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1-4或5-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010473854.7A CN111651695A (zh) | 2020-05-29 | 2020-05-29 | 一种短链接的生成与解析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010473854.7A CN111651695A (zh) | 2020-05-29 | 2020-05-29 | 一种短链接的生成与解析方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111651695A true CN111651695A (zh) | 2020-09-11 |
Family
ID=72348688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010473854.7A Pending CN111651695A (zh) | 2020-05-29 | 2020-05-29 | 一种短链接的生成与解析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111651695A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112861032A (zh) * | 2021-01-20 | 2021-05-28 | 银盛通信有限公司 | 一种短链接生成的方法和系统 |
CN113438331A (zh) * | 2021-05-10 | 2021-09-24 | 杭州博联智能科技股份有限公司 | 短域名管理方法、系统、电子装置和存储介质 |
CN116701792A (zh) * | 2023-08-03 | 2023-09-05 | 阿里健康科技(中国)有限公司 | 目标界面的访问方法、装置、设备和存储介质 |
-
2020
- 2020-05-29 CN CN202010473854.7A patent/CN111651695A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112861032A (zh) * | 2021-01-20 | 2021-05-28 | 银盛通信有限公司 | 一种短链接生成的方法和系统 |
CN113438331A (zh) * | 2021-05-10 | 2021-09-24 | 杭州博联智能科技股份有限公司 | 短域名管理方法、系统、电子装置和存储介质 |
CN116701792A (zh) * | 2023-08-03 | 2023-09-05 | 阿里健康科技(中国)有限公司 | 目标界面的访问方法、装置、设备和存储介质 |
CN116701792B (zh) * | 2023-08-03 | 2023-11-24 | 阿里健康科技(中国)有限公司 | 目标界面的访问方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10698885B2 (en) | Method and device for writing service data in block chain system | |
CN109040341B (zh) | 智能合约地址的生成方法、装置、计算机设备及可读存储介质 | |
CN111651695A (zh) | 一种短链接的生成与解析方法及装置 | |
WO2021179809A1 (zh) | 缓存和执行智能合约的方法和装置 | |
CN108628898B (zh) | 数据入库的方法、装置和设备 | |
CN110474900B (zh) | 一种游戏协议测试方法及装置 | |
CN110046638B (zh) | 多平台间数据的融合方法、装置及设备 | |
CN111443899B (zh) | 一种元素处理方法、装置、电子设备及存储介质 | |
CN111209341B (zh) | 区块链的数据存储方法、装置、设备及介质 | |
Li et al. | A new closed frequent itemset mining algorithm based on GPU and improved vertical structure | |
CA3131106A1 (en) | Method, device and system for processing service data by merging sorting algorithm | |
CN111291084A (zh) | 样本id对齐方法、装置、设备及存储介质 | |
WO2023071566A1 (zh) | 数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 | |
CN116204612A (zh) | 一种文本相似度计算方法及系统 | |
CN114466012A (zh) | 内容初始化方法、装置、电子设备和存储介质 | |
CN110221778A (zh) | 酒店数据的处理方法、系统、存储介质以及电子设备 | |
CN114995719A (zh) | 列表渲染方法、装置、设备以及存储介质 | |
CN111400623B (zh) | 用于搜索信息的方法和装置 | |
CN110008732B (zh) | 数据的关联方法、装置及设备 | |
US20200394262A1 (en) | Natural Language Processing and Candidate Response Evaluation | |
CN112181825A (zh) | 测试案例库构建方法、装置、电子设备及介质 | |
CN116737777B (zh) | 对目标算子进行搜索的方法、计算设备和计算机可读存储介质 | |
CN109165220B (zh) | 一种数据匹配计算方法 | |
CN112328960B (zh) | 数据运算的优化方法、装置、电子设备及存储介质 | |
US20220335039A1 (en) | Data file distribution method and equipment, smart device and computer storage medium |
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 |