[发明专利]一种发号方法及发号器有效
申请号: | 201810017150.1 | 申请日: | 2018-01-08 |
公开(公告)号: | CN108171862B | 公开(公告)日: | 2021-03-09 |
发明(设计)人: | 姜晓腾 | 申请(专利权)人: | 北京值得买科技股份有限公司 |
主分类号: | G07C11/00 | 分类号: | G07C11/00;G06F9/46;G06F9/54 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100068 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 方法 发号器 | ||
本发明实施例提供一种发号方法及发号器,该发号方法包括:收到发号请求后,获取目标业务的目标业务唯一标识;按照预设的业务唯一标识与信号量之间的对应关系,确定目标业务唯一标识对应的目标信号量;判断目标信号量的状态是否为可抢占状态;如果是,则抢占目标信号量、锁定目标信号量为不可抢占状态,然后从预设共享内存中获取与目标业务唯一标识对应的当前号、将当前号映射至目标进程在本地执行数值自增1操作,并将目标号确定为当前号、并写回至预设共享内存,以及释放所抢占的目标信号量、更改目标信号量为可抢占状态;如果否,则排队等待抢占目标信号量。应用本发明实施例提供的方案,在保证发号器发号效率的前提下能够获得连续且唯一的号。
技术领域
本发明涉及计算机网络技术领域,特别涉及一种发号方法及发号器。
背景技术
目前,各个业务系统(比如订单号系统、日志号系统等)往往需要用到发号器,对于基于多进程方式提供服务的业务系统而言,往往需要借助于信号量控制当前由哪一个进程来获得第三方发号器所发的号。其中,发号器发出的号为连续自然数,且每发出一个号后发号器的数值自增1。对于业务系统在短时间内访问量过大的情况而言,若发号器的发号性能不能满足需要,就容易造成业务系统延迟、甚至造成雪崩效应,从而使得发号器发号不准确、产生重复数据,进一步导致网站业务出现问题,甚至带来经济损失。
一般的,在基于多进程方式提供服务的业务系统中,每一进程需要通过调用第三方发号器来获得发号器所发的号。显然,系统内核的性能高低决定了发号效率的快慢,当系统内核的性能低时就容易降低发号器的发号效率。因此,为保证发号器的发号效率,现有技术中提供了一种“微秒级发号时间+随机数”的方式作为发号器所发出的号,不再借助于第三方发号器进程实现发号。
虽然现有技术方案无需借助第三方发号器进程实现发号,但是“微秒级发号时间+随机数”的方式生成的号是不连续的;并且,进程a和进程b的微秒级发号时间相同、随机数也相同的情况是完全有可能的,此时进程a和进程b便获得了相同的号,无法满足这种小概率事件的发号需求。
发明内容
本发明实施例的目的在于提供一种发号方法及发号器,以便在保证发号器发号效率的前提下,保证发号器发号的连续性和唯一性。
为达到上述目的,本发明实施例公开了一种发号方法,应用于提供目标业务的任一目标进程,所述发号方法包括:
收到针对所述目标进程的发号请求后,获取目标业务对应的目标业务唯一标识;
按照预设的业务唯一标识与信号量之间的对应关系,确定目标业务唯一标识对应的目标信号量;
判断所述目标信号量的状态是否为可抢占状态;
如果是,则抢占所述目标信号量、锁定所述目标信号量为不可抢占状态,然后从预设共享内存中获取与所述目标业务唯一标识对应的当前号、将所述当前号映射至目标进程在本地执行数值自增1操作,并将自增操作后得到的目标号确定为当前号、并写回至所述预设共享内存,以及释放所抢占的目标信号量、更改所述目标信号量为可抢占状态;
如果否,则排队等待抢占所述目标信号量。
优选的,所述获取目标业务对应的目标业务唯一标识的步骤,包括:
获取目标业务的目标业务名;
基于循环冗余校验算法对所述目标业务名进行数字化处理,并在数字化处理之后得到所述目标业务名对应的目标业务唯一标识。
优选的,所述目标业务名包括网站域名。
优选的,所述预设共享内存是基于Linux操作系统实现的内存共享。
优选的,所述预设共享内存中设置有针对不同业务的多个信号量。
优选的,在所述将所述当前号映射至目标进程在本地执行数值自增1操作的步骤之后,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京值得买科技股份有限公司,未经北京值得买科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810017150.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:医院排队叫号系统
- 下一篇:增值税发票的检验方法及装置