CN108171862B - 一种发号方法及发号器 - Google Patents

一种发号方法及发号器 Download PDF

Info

Publication number
CN108171862B
CN108171862B CN201810017150.1A CN201810017150A CN108171862B CN 108171862 B CN108171862 B CN 108171862B CN 201810017150 A CN201810017150 A CN 201810017150A CN 108171862 B CN108171862 B CN 108171862B
Authority
CN
China
Prior art keywords
target
semaphore
target service
unique identifier
state
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
CN201810017150.1A
Other languages
English (en)
Other versions
CN108171862A (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.)
Beijing Zhidemai Technology Co ltd
Original Assignee
Beijing Zhidemai 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 Beijing Zhidemai Technology Co ltd filed Critical Beijing Zhidemai Technology Co ltd
Priority to CN201810017150.1A priority Critical patent/CN108171862B/zh
Publication of CN108171862A publication Critical patent/CN108171862A/zh
Application granted granted Critical
Publication of CN108171862B publication Critical patent/CN108171862B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C11/00Arrangements, systems or apparatus for checking, e.g. the occurrence of a condition, not provided for elsewhere
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C11/00Arrangements, systems or apparatus for checking, e.g. the occurrence of a condition, not provided for elsewhere
    • G07C2011/04Arrangements, systems or apparatus for checking, e.g. the occurrence of a condition, not provided for elsewhere related to queuing systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例提供一种发号方法及发号器,该发号方法包括:收到发号请求后,获取目标业务的目标业务唯一标识;按照预设的业务唯一标识与信号量之间的对应关系,确定目标业务唯一标识对应的目标信号量;判断目标信号量的状态是否为可抢占状态;如果是,则抢占目标信号量、锁定目标信号量为不可抢占状态,然后从预设共享内存中获取与目标业务唯一标识对应的当前号、将当前号映射至目标进程在本地执行数值自增1操作,并将目标号确定为当前号、并写回至预设共享内存,以及释放所抢占的目标信号量、更改目标信号量为可抢占状态;如果否,则排队等待抢占目标信号量。应用本发明实施例提供的方案,在保证发号器发号效率的前提下能够获得连续且唯一的号。

Description

一种发号方法及发号器
技术领域
本发明涉及计算机网络技术领域,特别涉及一种发号方法及发号器。
背景技术
目前,各个业务系统(比如订单号系统、日志号系统等)往往需要用到发号器,对于基于多进程方式提供服务的业务系统而言,往往需要借助于信号量控制当前由哪一个进程来获得第三方发号器所发的号。其中,发号器发出的号为连续自然数,且每发出一个号后发号器的数值自增1。对于业务系统在短时间内访问量过大的情况而言,若发号器的发号性能不能满足需要,就容易造成业务系统延迟、甚至造成雪崩效应,从而使得发号器发号不准确、产生重复数据,进一步导致网站业务出现问题,甚至带来经济损失。
一般的,在基于多进程方式提供服务的业务系统中,每一进程需要通过调用第三方发号器来获得发号器所发的号。显然,系统内核的性能高低决定了发号效率的快慢,当系统内核的性能低时就容易降低发号器的发号效率。因此,为保证发号器的发号效率,现有技术中提供了一种“微秒级发号时间+随机数”的方式作为发号器所发出的号,不再借助于第三方发号器进程实现发号。
虽然现有技术方案无需借助第三方发号器进程实现发号,但是“微秒级发号时间+随机数”的方式生成的号是不连续的;并且,进程a和进程b的微秒级发号时间相同、随机数也相同的情况是完全有可能的,此时进程a和进程b便获得了相同的号,无法满足这种小概率事件的发号需求。
发明内容
本发明实施例的目的在于提供一种发号方法及发号器,以便在保证发号器发号效率的前提下,保证发号器发号的连续性和唯一性。
为达到上述目的,本发明实施例公开了一种发号方法,应用于提供目标业务的任一目标进程,所述发号方法包括:
收到针对所述目标进程的发号请求后,获取目标业务对应的目标业务唯一标识;
按照预设的业务唯一标识与信号量之间的对应关系,确定目标业务唯一标识对应的目标信号量;
判断所述目标信号量的状态是否为可抢占状态;
如果是,则抢占所述目标信号量、锁定所述目标信号量为不可抢占状态,然后从预设共享内存中获取与所述目标业务唯一标识对应的当前号、将所述当前号映射至目标进程在本地执行数值自增1操作,并将自增操作后得到的目标号确定为当前号、并写回至所述预设共享内存,以及释放所抢占的目标信号量、更改所述目标信号量为可抢占状态;
如果否,则排队等待抢占所述目标信号量。
优选的,所述获取目标业务对应的目标业务唯一标识的步骤,包括:
获取目标业务的目标业务名;
基于循环冗余校验算法对所述目标业务名进行数字化处理,并在数字化处理之后得到所述目标业务名对应的目标业务唯一标识。
优选的,所述目标业务名包括网站域名。
优选的,所述预设共享内存是基于Linux操作系统实现的内存共享。
优选的,所述预设共享内存中设置有针对不同业务的多个信号量。
优选的,在所述将所述当前号映射至目标进程在本地执行数值自增1操作的步骤之后,还包括:
将自增操作后得到的目标号返回至目标业务。
为达到上述目的,本发明实施例公开了一种发号器,所述发号器包括:
唯一标识获取模块,用于在收到针对目标进程的发号请求后,获取目标业务对应的目标业务唯一标识;
信号量确定模块,用于按照预设的业务唯一标识与信号量之间的对应关系,确定目标业务唯一标识对应的目标信号量;
状态判断模块,用于判断所述目标信号量的状态是否为可抢占状态,如果是,触发发号模块,否则触发排队模块;
所述发号模块,用于在所述状态判断模块的判断结果为是时,抢占所述目标信号量、锁定所述目标信号量为不可抢占状态,然后从预设共享内存中获取与所述目标业务唯一标识对应的当前号、将所述当前号映射至目标进程在本地执行数值自增1操作,并将自增操作后得到的目标号确定为当前号、并写回至所述预设共享内存,以及释放所抢占的目标信号量、更改所述目标信号量为可抢占状态;
所述排队模块,用于在所述状态判断模块的判断结果为否时,排队等待抢占所述目标信号量。
优选的,所述唯一标识获取模块,具体用于:
获取目标业务的目标业务名;
基于循环冗余校验算法对所述目标业务名进行数字化处理,并在所述数字化处理之后得到所述目标业务名对应的目标业务唯一标识。
优选的,所述预设共享内存是基于Linux操作系统实现的内存共享。
优选的,所述发号器还包括:
目标号返回模块,用于在所述发号模块将所述当前号映射至目标进程在本地执行数值自增1操作的步骤之后,将自增操作后得到的目标号返回至目标业务。
本发明实施例提供一种发号方法及发号器,该发号方法应用于提供目标业务的任一目标进程,具体的,收到针对目标进程的发号请求后,目标进程获取目标业务对应的目标业务唯一标识,并确定出目标业务唯一标识对应的目标信号量,接着判断目标信号量是否为可抢占状态,当判定为可抢占状态时,目标进程抢占该目标信号量、并将目标信号量锁定为不可抢占状态,然后目标进程从预设共享内存中获取与目标业务唯一标识对应的当前号、将当前号映射至目标进程在本地执行自增1操作,并将自增操作后得到的目标号确定为当前号并写回至预设共享内存,以及释放所抢占的目标信号量、更改目标信号量为可抢占状态;而当判定为不可抢占状态时,目标进程排队等待抢占所述目标信号量。
需要说明的是,目标进程在抢占到对应的目标信号量之后,将存储于预设共享内存中的当前号映射到目标进程本地、并执行自增1操作,自增操作后得到的目标号即为目标进程所需要的号,无需利用第三方发号器即可获得所需要的号。由于是通过自增操作获得的号,因而保证了所发的号的唯一性和连续性。需要指出的是,基于共享内存来传递数据是进程间最快的通信方式,一旦内存映射到共享该内存的进程的地址空间时,进程间传递数据时不再涉及到内核,也就是说,进程不再需要通过执行进入内核的系统调用来传递数据,需要强调的是,在数据传递时间方面而言,进入内核的系统调用方式要远远大于基于共享内存的映射方式。总而言之,应用本发明实施例提供的发号方案进行发号,在保证发号器发号效率的前提下,保证发号器发号的连续性和唯一性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种发号方法的流程示意图;
图2为本发明实施例提供的一种发号器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了在保证发号器发号效率的前提下,保证发号器发号的连续性和唯一性,本发明实施例提供了一种发号方法及发号器。
首先对本发明实施例的应用环境进行描述,本发明实施例提供的发号方案可以应用于一台物理机构成的业务系统中,还可以应用于由多台物理机构成的计算机集群的业务系统中,也就是,提供业务服务的各个进程,可以是运行于同一台物理机上的进程,还可以是运行于计算机集群中的不同物理机上,本发明实施例并不需要对此进行限定。
另外,本发明实施例业务系统可以是基于PHP(Hypertext Preprocessor,超文本预处理器)开源脚本语言设计得到的系统,当然还可以由其他程序开发语言而设计得到,本发明实施例也无需对此进行限定,本领域内的技术人员可以根据实际应用中的具体情况进行合理的设置。
下面首先对本发明实施例提供的一种发号方法进行详细说明。
如图1所示,为本发明实施例提供的一种发号方法,应用于提供目标业务的任一目标进程,所述发号方法可以包括:
S101:收到针对所述目标进程的发号请求后,获取目标业务对应的目标业务唯一标识。
具体的,当收到针对目标进程的发号请求后,目标进程可以根据目标业务的目标业务名来获得该目标业务所对应的目标业务唯一标识。需要说明的是,该目标业务唯一标识可以为字符和/或数字。
一种实现方式中,可以按照以下方式获取目标业务对应的目标业务唯一标识的步骤:
(1)获取目标业务的目标业务名。
具体的,所述目标业务名可以包括网站域名,需要说明的是,这里提及的网站域名仅仅是目标业务名的一种具体实现形式,当然还可以有其他可行的实现形式,本发明实施例无需对此进行限定。
(2)基于循环冗余校验算法对所述目标业务名进行数字化处理,并在数字化处理之后得到所述目标业务名对应的目标业务唯一标识。
具体的,可以基于CRC32(Cyclic Redundancy Check,循环冗余校验算法)对目标业务名进行数字化处理,将目标业务名转换为与目标业务一一对应的字符串,并将所得到的字符串作为与该目标业务名对应的目标业务唯一标识。需要说明的是,这里所提及的循环冗余算法仅为对目标业务名进行数字化处理的一种具体算法,本领域内的技术人员可以根据实际应用中的具体情况选用合适的算法进行数字化处理,本发明并不需要限定对目标业务名进行数字化处理所选用的具体算法。
S102:按照预设的业务唯一标识与信号量之间的对应关系,确定目标业务唯一标识对应的目标信号量。
需要说明的是,对于基于多进程方式提供服务的业务系统而言,往往需要借助于信号量来控制进程的执行。而且,对于不用业务而言,往往需要由针对各自业务的专属的信号量来控制,本发明实施例的预设共享内存中设置有针对不同业务的多个信号量,以控制来自于不同业务的进程的执行。
S103:判断所述目标信号量的状态是否为可抢占状态,如果是,则执行步骤S104,否则执行步骤S105。
需要说明的是,对于业务系统中的每一个目标进程而言,在抢占信号量前需要先判断对应目标信号量的状态是否为可抢占状态,例如,目标进程读取目标信号量的状态标志位,当读取到的状态标志位的数字为“1”时,可以判定该目标信号量为可抢占状态,而当读取到的状态标志位的数字为“0”时,可以判定该目标信号量为不可抢占状态。
优选的,在业务系统刚启用时,目标信号量还未被任何目标进程所抢占,此时,如果抢占目标信号量的首次申请成功,则可以直接对目标信号量进行初始化处理,即将目标信号量的状态标志位置位1,而如果抢占目标信号量的首次申请失败时,可以进行抢占目标信号量的二次申请,再对目标信号量进行初始化处理。若二次申请成功则获取上一次目标信号量的初始化时间,若该初始化时间为“0”则表明目标信号量的初始化未完成,需等待预设时间如1秒,若该初始化时间不为“0”,则表明该目标信号量初始化完成。
S104:抢占所述目标信号量、锁定所述目标信号量为不可抢占状态,然后从预设共享内存中获取与所述目标业务唯一标识对应的当前号、将所述当前号映射至目标进程在本地执行数值自增1操作,并将自增操作后得到的目标号确定为当前号、并写回至所述预设共享内存,以及释放所抢占的目标信号量、更改所述目标信号量为可抢占状态。
优选的,所述预设共享内存是基于Linux操作系统实现的内存共享。
需要说明的是,当步骤S103中目标进程判定目标信号量为可抢占状态的情况下,目标进程抢占该目标信号量,然后将目标信号量的状态更改为不可抢占状态,将目标信号量锁死,此时其余进程无法再抢占该目标信号量。
需要特别指出的是,目标进程获取到预设共享内存中的当前号后,将该当前号映射至目标进程在本地执行数值自增1操作,该自增操作类似于第三方发号器的发号功能,以及在完成自增操作后将得到的目标号确定为当前号写回至预设共享内存中,以便其余进程在抢占到目标信号量之后,将共享内存中的当前号映射到其余进程本地,并执行数值自增操作。
另外,在目标进程将当前号写回至预设共享内存之后,需要释放所抢占的目标信号量、将目标信号量更改为可抢占状态,以便其余进程可以继续抢占该目标信号量。
S105:排队等待抢占所述目标信号量。
需要说明的是,在步骤S103判断该目标信号量为不可抢占状态的情况下,目标进程需要排队等待抢占该目标信号量,一种方式中,可以按照目标信号判断该目标信号量的状态的时间戳先后顺序依次等待抢占该信号量。
进一步的,在所述将所述当前号映射至目标进程在本地执行数值自增1操作的步骤之后,还可以包括:将自增操作后得到的目标号返回至目标业务。
需要说明的是,本发明实施例中提及将自增1操作之后的目标号确定为目标进程所获得的号,这仅仅是一种具体的实现形式,还可以是将自增1操作之前的目标号确定为目标进程所获得的号,这也是合理的,本发明实施例并不需要对此进行限定,本领域内的技术人员需要根据实际应用中的具体情况进行合理的设置。另外,这里的自增1操作,也仅仅是发号器发号的一种具体形式,当然还可以将发号间隔更改为其他数字,例如自增2、3等等,本发明并不需要对发号间隔进行限定。
需要说明的是,目标进程在抢占到对应的目标信号量之后,将存储于预设共享内存中的当前号映射到目标进程本地、并执行自增1操作,自增操作后得到的目标号即为目标进程所需要的号,无需利用第三方发号器即可获得所需要的号。由于是通过自增操作获得的号,因而保证了所发的号的唯一性和连续性。需要指出的是,基于共享内存来传递数据是进程间最快的通信方式,一旦内存映射到共享该内存的进程的地址空间时,进程间传递数据时不再涉及到内核,也就是说,进程不再需要通过执行进入内核的系统调用来传递数据,需要强调的是,在数据传递时间方面而言,进入内核的系统调用方式要远远大于基于共享内存的映射方式。总而言之,应用本发明实施例提供的发号方案进行发号,在保证发号器发号效率的前提下,保证发号器发号的连续性和唯一性。
针对前述发号方法,本发明实施例还提供了一种发号器。下面再对本发明实施例提供的一种发号器进行介绍。
如图2所示,为本发明实施例提供的一种发号器,所述发号器可以包括:唯一标识获取模块210、信号量确定模块220、状态判断模块230、所述发号模块240和排队模块250。
其中,唯一标识获取模块210,用于在收到针对目标进程的发号请求后,获取目标业务对应的目标业务唯一标识。
信号量确定模块220,用于按照预设的业务唯一标识与信号量之间的对应关系,确定目标业务唯一标识对应的目标信号量。
状态判断模块230,用于判断所述目标信号量的状态是否为可抢占状态,如果是,触发发号模块240,否则触发排队模块250。
所述发号模块240,用于在所述状态判断模块230的判断结果为是时,抢占所述目标信号量、锁定所述目标信号量为不可抢占状态,然后从预设共享内存中获取与所述目标业务唯一标识对应的当前号、将所述当前号映射至目标进程在本地执行数值自增1操作,并将自增操作后得到的目标号确定为当前号、并写回至所述预设共享内存,以及释放所抢占的目标信号量、更改所述目标信号量为可抢占状态。
所述排队模块250,用于在所述状态判断模块230的判断结果为否时,排队等待抢占所述目标信号量。
一种实现方式中,所述唯一标识获取模块210,具体用于:
获取目标业务的目标业务名;基于循环冗余校验算法对所述目标业务名进行数字化处理,并在所述数字化处理之后得到所述目标业务名对应的目标业务唯一标识。
具体的,所述目标业务名可以包括网站域名。
具体的,所述预设共享内存是基于Linux操作系统实现的内存共享。
其中,所述预设共享内存中设置有针对不同业务的多个信号量。
一种实现方式中,所述发号器还可以包括:目标号返回模块,用于在所述发号模块240将所述当前号映射至目标进程在本地执行数值自增1操作的步骤之后,将自增操作后得到的目标号返回至目标业务。
需要说明的是,目标进程在抢占到对应的目标信号量之后,将存储于预设共享内存中的当前号映射到目标进程本地、并执行自增1操作,自增操作后得到的目标号即为目标进程所需要的号,无需利用第三方发号器即可获得所需要的号。由于是通过自增操作获得的号,因而保证了所发的号的唯一性和连续性。需要指出的是,基于共享内存来传递数据是进程间最快的通信方式,一旦内存映射到共享该内存的进程的地址空间时,进程间传递数据时不再涉及到内核,也就是说,进程不再需要通过执行进入内核的系统调用来传递数据,需要强调的是,在数据传递时间方面而言,进入内核的系统调用方式要远远大于基于共享内存的映射方式。总而言之,应用本发明实施例提供的发号方案进行发号,在保证发号器发号效率的前提下,保证发号器发号的连续性和唯一性。
对于系统或装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (9)

1.一种发号方法,其特征在于,应用于提供目标业务的任一目标进程,所述发号方法包括:
收到针对所述目标进程的发号请求后,获取目标业务对应的目标业务唯一标识;
按照预设的业务唯一标识与信号量之间的对应关系,确定目标业务唯一标识对应的目标信号量;
判断所述目标信号量的状态是否为可抢占状态;
如果是,则抢占所述目标信号量、锁定所述目标信号量为不可抢占状态,然后从预设共享内存中获取与所述目标业务唯一标识对应的当前号、将所述当前号映射至目标进程在本地执行数值自增1操作,并将自增操作后得到的目标号确定为当前号、并写回至所述预设共享内存,以及释放所抢占的目标信号量、更改所述目标信号量为可抢占状态;
如果否,则排队等待抢占所述目标信号量;
在所述将所述当前号映射至目标进程在本地执行数值自增1操作的步骤之后,还包括:
将自增操作后得到的目标号返回至目标业务。
2.根据权利要求1所述的发号方法,其特征在于,所述获取目标业务对应的目标业务唯一标识的步骤,包括:
获取目标业务的目标业务名;
基于循环冗余校验算法对所述目标业务名进行数字化处理,并在数字化处理之后得到所述目标业务名对应的目标业务唯一标识。
3.根据权利要求2所述的发号方法,其特征在于,所述目标业务名包括网站域名。
4.根据权利要求1所述的发号方法,其特征在于,所述预设共享内存是基于Linux操作系统实现的内存共享。
5.根据权利要求4所述的发号方法,其特征在于,所述预设共享内存中设置有针对不同业务的多个信号量。
6.一种发号器,其特征在于,所述发号器包括:
唯一标识获取模块,用于在收到针对目标进程的发号请求后,获取目标业务对应的目标业务唯一标识;
信号量确定模块,用于按照预设的业务唯一标识与信号量之间的对应关系,确定目标业务唯一标识对应的目标信号量;
状态判断模块,用于判断所述目标信号量的状态是否为可抢占状态,如果是,触发发号模块,否则触发排队模块;
所述发号模块,用于在所述状态判断模块的判断结果为是时,抢占所述目标信号量、锁定所述目标信号量为不可抢占状态,然后从预设共享内存中获取与所述目标业务唯一标识对应的当前号、将所述当前号映射至目标进程在本地执行数值自增1操作,并将自增操作后得到的目标号确定为当前号、并写回至所述预设共享内存,以及释放所抢占的目标信号量、更改所述目标信号量为可抢占状态;
所述排队模块,用于在所述状态判断模块的判断结果为否时,排队等待抢占所述目标信号量。
7.根据权利要求6所述的发号器,其特征在于,所述唯一标识获取模块,具体用于:
获取目标业务的目标业务名;
基于循环冗余校验算法对所述目标业务名进行数字化处理,并在所述数字化处理之后得到所述目标业务名对应的目标业务唯一标识。
8.根据权利要求6所述的发号器,其特征在于,所述预设共享内存是基于Linux操作系统实现的内存共享。
9.根据权利要求6-8任一项所述的发号器,其特征在于,所述发号器还包括:
目标号返回模块,用于在所述发号模块将所述当前号映射至目标进程在本地执行数值自增1操作的步骤之后,将自增操作后得到的目标号返回至目标业务。
CN201810017150.1A 2018-01-08 2018-01-08 一种发号方法及发号器 Active CN108171862B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810017150.1A CN108171862B (zh) 2018-01-08 2018-01-08 一种发号方法及发号器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810017150.1A CN108171862B (zh) 2018-01-08 2018-01-08 一种发号方法及发号器

Publications (2)

Publication Number Publication Date
CN108171862A CN108171862A (zh) 2018-06-15
CN108171862B true CN108171862B (zh) 2021-03-09

Family

ID=62517698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810017150.1A Active CN108171862B (zh) 2018-01-08 2018-01-08 一种发号方法及发号器

Country Status (1)

Country Link
CN (1) CN108171862B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110046138B (zh) * 2019-03-06 2024-03-01 平安科技(深圳)有限公司 一种iSCSI目标器多实例处理方法及分布式存储系统
CN110737806B (zh) * 2019-09-09 2023-12-01 贝壳技术有限公司 面向业务实体的全局id生成方法及装置
CN114244806B (zh) * 2022-02-28 2022-07-29 深圳市城市交通规划设计研究中心股份有限公司 一种分布式微服务系统发号方法、计算机及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1938686A (zh) * 2004-03-31 2007-03-28 英特尔公司 提供用户级多线程操作的方法和系统
CN1963763A (zh) * 2005-11-09 2007-05-16 同济大学 网格环境下动态在线式任务调度系统及其调度方法
CN101086712A (zh) * 2006-06-07 2007-12-12 国际商业机器公司 用于在内核间共享内核服务的方法和系统
CN104346229A (zh) * 2014-11-14 2015-02-11 国家电网公司 一种用于嵌入式操作系统进程间通讯优化的处理方法
WO2017065333A1 (ko) * 2015-10-16 2017-04-20 주식회사 엔플랫 서비스 대기자를 위한 포토 티켓 출력 제어 방법 이를 지원하는 포토 티켓 운영 서버
CN106911780A (zh) * 2017-02-28 2017-06-30 北京三快在线科技有限公司 业务id生成方法、装置及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101123483B (zh) * 2007-09-11 2010-11-24 华为技术有限公司 业务链路的检测方法及装置
CN103530294B (zh) * 2012-07-05 2017-12-22 腾讯科技(深圳)有限公司 一种文件分类方法和装置
CN105389226B (zh) * 2015-10-23 2018-07-13 上海斐讯数据通信技术有限公司 一种访问共享内存异常的系统及方法
JP6632416B2 (ja) * 2016-02-16 2020-01-22 三菱電機株式会社 共有メモリ制御回路及び共有メモリ制御方法
CN105760216A (zh) * 2016-02-29 2016-07-13 惠州市德赛西威汽车电子股份有限公司 一种多进程同步控制方法
CN106648939A (zh) * 2016-12-30 2017-05-10 上海寰视网络科技有限公司 用于进程间资源共享的方法与设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1938686A (zh) * 2004-03-31 2007-03-28 英特尔公司 提供用户级多线程操作的方法和系统
CN1963763A (zh) * 2005-11-09 2007-05-16 同济大学 网格环境下动态在线式任务调度系统及其调度方法
CN101086712A (zh) * 2006-06-07 2007-12-12 国际商业机器公司 用于在内核间共享内核服务的方法和系统
CN104346229A (zh) * 2014-11-14 2015-02-11 国家电网公司 一种用于嵌入式操作系统进程间通讯优化的处理方法
WO2017065333A1 (ko) * 2015-10-16 2017-04-20 주식회사 엔플랫 서비스 대기자를 위한 포토 티켓 출력 제어 방법 이를 지원하는 포토 티켓 운영 서버
CN106911780A (zh) * 2017-02-28 2017-06-30 北京三快在线科技有限公司 业务id生成方法、装置及系统

Also Published As

Publication number Publication date
CN108171862A (zh) 2018-06-15

Similar Documents

Publication Publication Date Title
CN110955535B (zh) 一种多业务请求进程调用fpga设备的方法及相关装置
CN108171862B (zh) 一种发号方法及发号器
US10846124B2 (en) Communication method, apparatus and system for virtual machine and host machine
CN109600375B (zh) 消息跟踪方法、装置、电子设备及存储介质
CN110119304B (zh) 一种中断处理方法、装置及服务器
CN109710695B (zh) 事务请求有效性识别和发起方法、装置、设备和介质
CN112650558B (zh) 数据处理方法、装置、可读介质和电子设备
CN114928579A (zh) 数据处理方法、装置、计算机设备及存储介质
WO2022237419A1 (zh) 任务执行方法、装置及存储介质
CN115934585A (zh) 内存管理方法、装置和计算机设备
CN107277022B (zh) 进程标记方法及装置
US20200371827A1 (en) Method, Apparatus, Device and Medium for Processing Data
US6832266B1 (en) Simplified microkernel application programming interface
CN111177032A (zh) 缓存空间申请方法、系统、装置及计算机可读存储介质
CN108241616B (zh) 消息推送方法和装置
CN111970213A (zh) 排队系统
CN106980578A (zh) 一种内存块管理方法及系统
CN116560809A (zh) 数据处理方法及装置、设备、介质
US6865579B1 (en) Simplified thread control block design
CN114153560A (zh) 一种虚拟中断处理方法、装置、设备及介质
CN111143418A (zh) 一种数据库读取数据方法、装置、设备及存储介质
CN112231290A (zh) 一种本地日志的处理方法、装置、设备及存储介质
CN109474543B (zh) 一种队列资源管理方法、装置及存储介质
US20240354231A1 (en) Partition based structural coverage hit-map collection from hardware trace data
CN113381941B (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
CB03 Change of inventor or designer information

Inventor after: Liu Feng

Inventor after: Jiang Xiaoteng

Inventor after: Sui Guo Dong

Inventor after: Liu Chao

Inventor before: Jiang Xiaoteng

CB03 Change of inventor or designer information