CN107885822A - 一种业务编码的生成方法及装置 - Google Patents
一种业务编码的生成方法及装置 Download PDFInfo
- Publication number
- CN107885822A CN107885822A CN201711085680.1A CN201711085680A CN107885822A CN 107885822 A CN107885822 A CN 107885822A CN 201711085680 A CN201711085680 A CN 201711085680A CN 107885822 A CN107885822 A CN 107885822A
- Authority
- CN
- China
- Prior art keywords
- service code
- service
- code
- paces
- generation
- 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
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- 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/2291—User-Defined Types; Storage management thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/30—Managing network names, e.g. use of aliases or nicknames
- H04L61/3015—Name registration, generation or assignment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/30—Types of network names
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种业务编码的生成方法及装置,在该方法中,第N个业务生成服务通过配置与业务码获取请求相对应的预取业务码步伐,从服务器中读取与预取业务码步伐相对应的数据,并生成业务码,再根据接收到的业务码读取请求从业务码队列中读取与预取业务码步伐对应的业务码,并返回给调用者。本发明的技术方案,能支持水平扩展,对于如发票号等有格式要求的编码也能满足。并且在满足业务功能的同时,方便系统中业务编码的统一管理,能快速响应需求的变更,能在运行时更改业务编码的配置信息,不需要任何改动,就可以重新配置。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种业务编码的生成方法及装置。
背景技术
在应用系统中,业务技术器在很多地方都会用到,如一个简单的请加申请单,单据号即是用业务计数器生成的,这个单据号可以是一个递增的数字,包含字母与数字的字符串,根据不同的业务需要,还有可能对它进行长度的限制,还有可能包含了一些业务信息,如把如期添加进来,或者是把一些与业务相关的信息加到前缀中,通过单据号就能知道是什么类型的单据。业务单号只是其中一种使用方式,还有资产标签,食品标签等都会使用到业务计数的功能。业务计数器主要是根据业务需求生成一串唯一的不重复的字符串。
当前有很多生成不重复的字符串方式,主要有如下几种:
方式一:数据库自增长的序列或者字段;
这种方式简单,代码量少,性能也能接受,但数字ID(I Dentification,身份标识)无排序,需要有分页与排序检索的功能,压力都在数据库服务器上,需要较高的数据库搜索和处理能力。
方式二:UUID(Universally Unique Identifier,唯一识别码);
比较常见的一种方式,获取比较方便,无论哪种语言都有比较方便的API(Application Programming Interface,应用程序编程接口)获取,性能也可以,并且全球唯一,并且在数据迁移的过程中对数据整合没有任何影响。
方式三:snowflake算法生成ID;
snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。不依赖于任何数据库,使用方便,且性能优于方式一数据库自增长的序列或者字段。
上面提及到的技术有各自的优点,但是有也各自的不足,具体不足之处如下:
方式一:数据库自增长的序列或者字段;
1)数据库的兼容性问题。在不同的数据库中,实现方式不一样,在数据进行迁移的时候或者系统需要支持多个数据库的时候,需要做特殊的处理;
2)单点故障问题。在单个数据库,或者是读写分离的情况下,会存在单点故障的风险;
3)扩展性。当性能无法满足业务需求的时候,进行扩展比较困难;
4)数据迁移困难。当需要与其他系统合并,或者迁移到其他系统的时候,会带来很多问题;
5)性能问题。当表的数量很大的时候,需要分表或者分库的时候,则会很麻烦。
方式二:UUID;
1)排序问题。应为生成的字符串都是无序的,无法保证趋势递增;
2)查询性能问题。UUID往往是使用字符串存储,根据不同的数据,对此的排序性能会差很多,且查询效率会低;
3)存储问题。由于字符串较长,如果海量存储数据,则会浪费比较多的存储空间;
4)传输性能差。由于字符串比较长,在网络的传输过程中,也相对慢,消耗表多的流量;
5)可读性差。都是无需的字符串,根本人工根本无法阅读。
方式三:snowflake算法生成ID;
1)格式扩展性差。生成的字符串格式是固定的,无法按照业务的需求变更;
2)可读性差。本身是个long型格式,人工无法阅读;
3)存储问题。由于字符串较长,如果海量存储数据,则会浪费比较多的存储空间。
也就是说,现有生成业务编码的方式存在扩展性差、可读性差、传输性能差以及数据迁移困难等问题。
发明内容
本发明实施例提供了一种业务编码的生成方法及装置,用以解决现有生成业务编码的方式存在扩展性差、可读性差、传输性能差以及数据迁移困难的问题。
本发明实施例提供了一种业务编码的生成方法,所述方法包括:
第N个业务码生成服务接收业务码获取请求;
根据所述业务码获取请求,配置与所述业务码获取请求相对应的预取业务码步伐,其中,所述预取业务码步伐与第N个业务码生成服务相对应,N为大于零的正整数;
向服务器发送预取业务码步伐请求,所述预取业务码步伐请求中携带有预取业务码步伐,并在确定业务码队列中的序号小于预设阈值时,从所述服务器中读取与所述预取业务码步伐相对应的数据,并生成业务码,将生成的业务码存放到业务码队列中;
接收业务码读取请求,所述业务码读取请求中携带有预取业务码步伐;
根据所述业务码读取请求,从业务码队列中读取与所述预取业务码步伐对应的业务码,并返回。
进一步地,作为一个可执行方案,在接收业务码获取请求之前,所述方法还包括:
在业务码配置库中配置业务码;
其中,配置业务码至少包括配置以下配置项:
前缀、后缀、序号位数、增加步伐、当前计数值、技术类型和预取步伐。
进一步地,作为一个可执行方案,在业务码配置库中配置业务码之后,所述方法还包括:
从服务器中获取分布锁,并将业务码配置库中的业务码配置项同步到服务器中,释放分布锁。
进一步地,作为一个可执行方案,在确定业务码队列中的序号小于预设阈值时,从服务器中读取与所述预取业务码步伐相对应的数据,并生成业务码,将生成的业务码存放到业务码队列中,具体包括:
在确定业务码队列中的序号小于预设阈值时,从服务器中获取分布锁,并从服务器中读取与所述预取业务码步伐相对应的配置项和预取的计数器步长;
将预取的计数器步长加到当前计数值上,得到新的当前计数值;
将得到的新的当前技术值更新至业务码配置库,释放锁;
根据获取到的配置项和预取的计数器步长生成业务码,并将生成的业务码存放到业务码队列中。
进一步地,作为一个可执行方案,第N个业务码生成服务接收业务码获取请求,包括:
第N个业务码生成服务接收服务网关发送的业务码获取请求;或
第N个业务码生成服务接收负载均衡构件ribbon发送的业务码获取请求。
进一步地,本发明实施例还提供了一种业务编码的生成装置,所述装置包括:
第一接收单元,用于接收业务码获取请求;
配置单元,用于根据所述业务码获取请求,配置与所述业务码获取请求相对应的预取业务码步伐,其中,所述预取业务码步伐与第N个业务码生成服务相对应,N为大于零的正整数;
生成单元,用于向服务器发送预取业务码步伐请求,所述预取业务码步伐请求中携带有预取业务码步伐,并在确定业务码队列中的序号小于预设阈值时,从所述服务器中读取与所述预取业务码步伐相对应的数据,并生成业务码,将生成的业务码存放到业务码队列中;
第二接收单元,用于接收业务码读取请求,所述业务码读取请求中携带有预取业务码步伐;
返回单元,用于根据所述业务码读取请求,从业务码队列中读取与所述预取业务码步伐对应的业务码,并返回。
进一步地,作为一个可执行方案,所述配置单元,还用于在接收业务码获取请求之前,在业务码配置库中配置业务码;其中,配置业务码至少包括配置以下配置项:前缀、后缀、序号位数、增加步伐、当前计数值、技术类型和预取步伐。
进一步地,作为一个可执行方案,所述装置还包括同步单元;
所述同步单元,用于在配置单元在业务码配置库中配置业务码之后,从服务器中获取分布锁,并将业务码配置库中的业务码配置项同步到服务器中,释放分布锁。
进一步地,作为一个可执行方案,所述生成单元,具体用于在确定业务码队列中的序号小于预设阈值时,从服务器中获取分布锁,并从服务器中读取与所述预取业务码步伐相对应的配置项和预取的计数器步长,将预取的计数器步长加到当前计数值上,得到新的当前计数值,并将得到的新的当前技术值更新至业务码配置库,释放锁,以及,根据获取到的配置项和预取的计数器步长生成业务码,并将生成的业务码存放到业务码队列中。
进一步地,作为一个可执行方案,第一接收单元,具体用于接收服务网关发送的业务码获取请求;或接收ribbon发送的业务码获取请求。
本发明有益效果如下:
本发明实施例提供了一种业务编码的生成方法及装置,在该方法中,第N个业务码生成服务通过配置与所述业务码获取请求相对应的预取业务码步伐,从所述服务器中读取与所述预取业务码步伐相对应的数据,并生成业务码,将生成的业务码存放到业务码队列中,再根据接收到的业务码读取请求从业务码队列中读取与所述预取业务码步伐对应的业务码,并返回给调用者。本发明实施例所述技术方案,在企业单据不多的情况下,可由用户去定义简单可读性高的业务码;在企业单据多样的情况下,可灵活的根据业务码获取请求配置满足业务功能的唯一业务码;对于互联网中应用,即支持了大并发的获取唯一码的要求,并且能支持水平扩展,对于如发票号等有格式要求的编码也能满足。并且在满足业务功能的同时,方便系统中业务编码的统一管理,能快速响应需求的变更,能在运行时更改业务编码的配置信息,不需要任何改动,就可以重新配置。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本发明实施例一所述的业务编码的生成方法的流程示意图;
图2所示为本发明实施例一所述的生成业务码服务生命周期示意图;
图3所示为本发明实施例一所述的业务编码的生成装置的架构图示意图;
图4所示为本发明实施例二所述的业务编码的生成方法的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一:
本发明实施例一提供了一种业务编码的生成方法,如图1所示,其为本发明实施例一所述的业务编码的生成方法的流程示意图,所述方法可包括以下步骤:
步骤101:第N个业务码生成服务接收业务码获取请求。
步骤102:根据所述业务码获取请求,配置与所述业务码获取请求相对应的预取业务码步伐,其中,所述预取业务码步伐与第N个业务码生成服务相对应,N为大于零的正整数。
步骤103:向服务器发送预取业务码步伐请求,所述预取业务码步伐请求中携带有预取业务码步伐,并在确定业务码队列中的序号小于预设阈值时,从所述服务器中读取与所述预取业务码步伐相对应的数据,并生成业务码,将生成的业务码存放到业务码队列中。
需要说明的是,确定业务码队列中的序号小于预设阈值中的预设阈值是根据业务情况是否需要设置阈值来设置的,本发明实施例对此不做赘述。
步骤104:接收业务码读取请求,所述业务码读取请求中携带有预取业务码步伐。
步骤105:根据所述业务码读取请求,从业务码队列中读取与所述预取业务码步伐对应的业务码,并返回。
第N个业务码生成服务是核心模块,为了提高性能,可以部署多个业务码生成服务实例。并且可提供两种模式,一种是根据不同的业务码生成服务实例提供一个前缀标识,方便知道是哪个业务码生成服务提供的;一种是不提供标识,而是每个业务码生成服务都会提前预取一段可分配的序列出来,可以根据客户的对业务码的频率配置预取业务码步伐,有了预取业务码步伐,就不需要频繁的访问配置库,提高了业务码生成服务的性能。另外业务码生成服务里面提供了一个内存级别的高效无锁业务码队列,大大提高获取业务码的效率。
更具体地,为了说明业务码生成服务的具体业务功能,可将业务码生成服务分为以下五个部分:
1)DAO模块:主要负责对业务码配置库与服务器的操作,初始化时,把业务码配置库中的配置项同步到服务器中,并且提供同步锁功能,只允许同一个时刻只有一个业务码生成服务更新业务码配置库与服务器中的数据。
2)队列监听器:监听业务码队列还剩多少个序号,可以设置预设阈值,当小于阈值的时候,调用DAO模块的预取业务码步伐,并调用序列号生成者功能模块。
3)业务码队列:业务码队列使用RingBuffer结构,此结构能大大提升微服务器的吞吐量,并且对单一的生产者支持非常好。
4)序列号生产者:根据从业务码配置库预取过来的数据生成业务码,并存放到业务码队列中,只开启一个生产者线程。
5)序列号消费者:从业务码队列中读取业务码,并把业务码返回给调用者。
在生成业务码的整个生命周期中,主要有三个阶段,如图2所示。
一、初始化阶段
在这个阶段中,会把生成业务码的配置信息从业务码配置库中读取到服务器中,由于我们是多个业务码生成服务,所以利用服务器是单线程的特性,使用SETNX、DEL、GETSET、GET命令实现分布式锁功能,此功能保证了在多业务码生成服务的情况从业务码配置库拷贝配置信息到服务器中只拷贝一次。并且初始化了本业务码生成服务的监听器、生产者线程与消费者线程。
二、生产阶段
此阶段也会用到服务器的分布锁功能,应为从服务器获取了配置信息,与获取预取的计数器步长,并把预取的计数器步长加到当前计数值上,得到最新的当前计数值,此值要从新写到服务器与业务码配置库中,写完后,即释放锁。然后调用生产者生产业务码。
三、消费阶段
在初始化阶段会生成消费者线程,在接收到消费的请求后,从消费者连接池中获取消费正线程,并获取生成的业务码。
进一步地,作为一个可执行方案,在接收业务码获取请求之前,所述方法还包括:
在业务码配置库中配置业务码;
其中,配置业务码至少包括配置以下配置项:
前缀、后缀、序号位数、增加步伐、当前计数值、技术类型和预取步伐。
也就是说,为了方便对系统中的业务编码进行统一的管理,也为了方便业务人员对业务码的修改,把对编码的配置放到配置库表中,设置了前缀、后缀、序号位数、增加步伐、当前计数值、技术类型、预取步伐等字段。
进一步地,作为一个可执行方案,在业务码配置库中配置业务码之后,所述方法还包括:
从服务器中获取分布锁,并将业务码配置库中的业务码配置项同步到服务器中,释放分布锁。
这里的服务器是个缓存服务器,并且利用服务器的单线程功能实现分布式锁的功能,在初始化的时候,启动的第一个生成业务码服务从服务器中获取分布锁,并更新业务码配置库的信息,然后释放锁。在发起预取业务码步伐请求时,也是先获取锁,再更新到服务器与配置库中的业务码信息,然后释放锁,等待下一个预取业务码步伐请求。
在分布部署的情况下,需要配置分布锁,这样可避免多台服务器修改同一个资源,本发明实施例对此不做赘述。
进一步地,作为一个可执行方案,在确定业务码队列中的序号小于预设阈值时,从服务器中读取与所述预取业务码步伐相对应的数据,并生成业务码,将生成的业务码存放到业务码队列中,具体包括:
在确定业务码队列中的序号小于预设阈值时,从服务器中获取分布锁,并从服务器中读取与所述预取业务码步伐相对应的配置项和预取的计数器步长;
将预取的计数器步长加到当前计数值上,得到新的当前计数值;
将得到的新的当前技术值更新至业务码配置库,释放锁;
根据获取到的配置项和预取的计数器步长生成业务码,并将生成的业务码存放到业务码队列中。
在初始化阶段会生成消费者线程,当获取业务码时,会接收到消费请求,根据该消费请求,可以从消费者连接池中获取消费者线程,并获取生成的业务码。进一步地,作为一个可执行方案,第N个业务码生成服务接收业务码获取请求,包括:
第N个业务码生成服务接收服务网关发送的业务码获取请求;或
第N个业务码生成服务接收ribbon发送的业务码获取请求。
其中,ribbon是spring的一个负载均衡的构件,本发明实施例对此不做赘述。
为了使浏览器或者移动端能够直接访问业务码生成服务,使用Zuul作为服务网关。还提供了方向代理、动态路由、监控、弹性、安全等的边缘服务。Zuul是Netflix出品的一个基于JVM路由和服务端的负载均衡器。本发明实施例部署两个Zuul服务即可,这样可避免单点故障问题。另外,还可以直接通过ribbon来调用业务码生成服务。具体地,本发明实施例所述的业务编码的生成装置的架构图可如图3所示。
也就是说,本发明针对上述问题做了以下改进:唯一码的生成是在代码中生成,解决的了数据库的兼容性问题与数据库的迁移问题,支持两种业务码生成服务方式,为了避免出现单点故障问题我们可以部署大于2台的服务器,当需求量大达到性能瓶颈的时候,可以很简单的进行水平扩展,生成的格式可以依据用户的需求做成配置写入到业务码配置库中,在服务器启动的时候,在把格式的配置信息读取到缓存中,提高读取效率,由于可配置强,用户就可以定制出一些可读性强的业务编号,如BX201707070004,之前BX表示报销单,中间8位字符串表示日期,后面4位子增加的数字。
本发明实施例一提供了一种业务编码的生成方法,在该方法中,第N个业务码生成服务通过配置与所述业务码获取请求相对应的预取业务码步伐,从所述服务器中读取与所述预取业务码步伐相对应的数据,并生成业务码,将生成的业务码存放到业务码队列中,再根据接收到的业务码读取请求从业务码队列中读取与所述预取业务码步伐对应的业务码,并返回给调用者。本发明实施例所述技术方案,在企业单据不多的情况下,可由用户去定义简单可读性高的业务码;在企业单据多样的情况下,可灵活的根据业务码获取请求配置满足业务功能的唯一业务码;对于互联网中应用,即支持了大并发的获取唯一码的要求,并且能支持水平扩展,对于如发票号等有格式要求的编码也能满足。并且在满足业务功能的同时,方便系统中业务编码的统一管理,能快速响应需求的变更,能在运行时更改业务编码的配置信息,不需要任何改动,就可以重新配置。
实施例二
基于与本发明实施例一相同的发明构思,本发明实施例二提供了一一种业务编码的生成装置,该装置的具体实施可参见上述方法实施例一中的相关描述,重复之处不再赘述,其结构示意图如图4所示,该装置主要可包括:
第一接收单元41,可用于接收业务码获取请求;
配置单元42,可用于根据所述业务码获取请求,配置与所述业务码获取请求相对应的预取业务码步伐,其中,所述预取业务码步伐与第N个业务生成服务相对应,N为大于零的正整数;
生成单元43,可用于向服务器发送预取业务码步伐请求,所述预取业务码步伐请求中携带有预取业务码步伐,并在确定业务码队列中的序号小于预设阈值时,从所述服务器中读取与所述预取业务码步伐相对应的数据,并生成业务码,将生成的业务码存放到业务码队列中;
第二接收单元44,可用于接收业务码读取请求,所述业务码读取请求中携带有预取业务码步伐;
返回单元45,可用于根据所述业务码读取请求,从业务码队列中读取与所述预取业务码步伐对应的业务码,并返回。
进一步地,作为一个可执行方案,所述配置单元42,还可用于在接收业务码获取请求之前,在业务码配置库中配置业务码;其中,配置业务码至少包括配置以下配置项:前缀、后缀、序号位数、增加步伐、当前计数值、技术类型和预取步伐。
进一步地,作为一个可执行方案,所述装置还包括同步单元46;
所述同步单元46,可用于在配置单元42在业务码配置库中配置业务码之后,从服务器中获取分布锁,并将业务码配置库中的业务码配置项同步到服务器中,释放分布锁。
进一步地,作为一个可执行方案,所述生成单元43,具体可用于在确定业务码队列中的序号小于预设阈值时,从服务器中获取分布锁,并从服务器中读取与所述预取业务码步伐相对应的配置项和预取的计数器步长,将预取的计数器步长加到当前计数值上,得到新的当前计数值,并将得到的新的当前技术值更新至业务码配置库,释放锁,以及,根据获取到的配置项和预取的计数器步长生成业务码,并将生成的业务码存放到业务码队列中。
进一步地,作为一个可执行方案,第一接收单元41,具体可用于接收服务网关发送的业务码获取请求;或接收ribbon发送的业务码获取请求。
本发明实施例二提供了一种业务编码的生成装置,在该装置中,第N个业务码生成服务通过配置与所述业务码获取请求相对应的预取业务码步伐,从所述服务器中读取与所述预取业务码步伐相对应的数据,并生成业务码,将生成的业务码存放到业务码队列中,再根据接收到的业务码读取请求从业务码队列中读取与所述预取业务码步伐对应的业务码,并返回给调用者。本发明实施例所述技术方案,在企业单据不多的情况下,可由用户去定义简单可读性高的业务码;在企业单据多样的情况下,可灵活的根据业务码获取请求配置满足业务功能的唯一业务码;对于互联网中应用,即支持了大并发的获取唯一码的要求,并且能支持水平扩展,对于如发票号等有格式要求的编码也能满足。并且在满足业务功能的同时,方便系统中业务编码的统一管理,能快速响应需求的变更,能在运行时更改业务编码的配置信息,不需要任何改动,就可以重新配置。
需要说明的是,尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种业务编码的生成方法,其特征在于,所述方法包括:
第N个业务码生成服务接收业务码获取请求;
根据所述业务码获取请求,配置与所述业务码获取请求相对应的预取业务码步伐,其中,所述预取业务码步伐与第N个业务码生成服务相对应,N为大于零的正整数;
向服务器发送预取业务码步伐请求,所述预取业务码步伐请求中携带有预取业务码步伐,并在确定业务码队列中的序号小于预设阈值时,从所述服务器中读取与所述预取业务码步伐相对应的数据,并生成业务码,将生成的业务码存放到业务码队列中;
接收业务码读取请求,所述业务码读取请求中携带有预取业务码步伐;
根据所述业务码读取请求,从业务码队列中读取与所述预取业务码步伐对应的业务码,并返回。
2.根据权利要求1所述的方法,其特征在于,在接收业务码获取请求之前,所述方法还包括:
在业务码配置库中配置业务码;
其中,配置业务码至少包括配置以下配置项:
前缀、后缀、序号位数、增加步伐、当前计数值、技术类型和预取步伐。
3.根据权利要求1或2所述的方法,其特征在于,在业务码配置库中配置业务码之后,所述方法还包括:
从服务器中获取分布锁,并将业务码配置库中的业务码配置项同步到服务器中,释放分布锁。
4.根据权利要求1或2所述的方法,其特征在于,在确定业务码队列中的序号小于预设阈值时,从服务器中读取与所述预取业务码步伐相对应的数据,并生成业务码,将生成的业务码存放到业务码队列中,具体包括:
在确定业务码队列中的序号小于预设阈值时,从服务器中获取分布锁,并从服务器中读取与所述预取业务码步伐相对应的配置项和预取的计数器步长;
将预取的计数器步长加到当前计数值上,得到新的当前计数值;
将得到的新的当前技术值更新至业务码配置库,释放锁;
根据获取到的配置项和预取的计数器步长生成业务码,并将生成的业务码存放到业务码队列中。
5.根据权利要求1所述的方法,其特征在于,第N个业务码生成服务接收业务码获取请求,包括:
第N个业务码生成服务接收服务网关发送的业务码获取请求;或
第N个业务码生成服务接收负载均衡构件ribbon发送的业务码获取请求。
6.一种业务编码的生成装置,其特征在于,所述装置包括:
第一接收单元,用于接收业务码获取请求;
配置单元,用于根据所述业务码获取请求,配置与所述业务码获取请求相对应的预取业务码步伐,其中,所述预取业务码步伐与第N个业务码生成服务相对应,N为大于零的正整数;
生成单元,用于向服务器发送预取业务码步伐请求,所述预取业务码步伐请求中携带有预取业务码步伐,并在确定业务码队列中的序号小于预设阈值时,从所述服务器中读取与所述预取业务码步伐相对应的数据,并生成业务码,将生成的业务码存放到业务码队列中;
第二接收单元,用于接收业务码读取请求,所述业务码读取请求中携带有预取业务码步伐;
返回单元,用于根据所述业务码读取请求,从业务码队列中读取与所述预取业务码步伐对应的业务码,并返回。
7.根据权利要求6所述的装置,其特征在于,
所述配置单元,还用于在接收业务码获取请求之前,在业务码配置库中配置业务码;其中,配置业务码至少包括配置以下配置项:前缀、后缀、序号位数、增加步伐、当前计数值、技术类型和预取步伐。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括同步单元;
所述同步单元,用于在配置单元在业务码配置库中配置业务码之后,从服务器中获取分布锁,并将业务码配置库中的业务码配置项同步到服务器中,释放分布锁。
9.根据权利要求6或7所述的装置,其特征在于,
所述生成单元,具体用于在确定业务码队列中的序号小于预设阈值时,从服务器中获取分布锁,并从服务器中读取与所述预取业务码步伐相对应的配置项和预取的计数器步长,将预取的计数器步长加到当前计数值上,得到新的当前计数值,并将得到的新的当前技术值更新至业务码配置库,释放锁,以及,根据获取到的配置项和预取的计数器步长生成业务码,并将生成的业务码存放到业务码队列中。
10.根据权利要求6所述的装置,其特征在于,
第一接收单元,具体用于接收服务网关发送的业务码获取请求;或接收负载均衡构件ribbon发送的业务码获取请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711085680.1A CN107885822A (zh) | 2017-11-07 | 2017-11-07 | 一种业务编码的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711085680.1A CN107885822A (zh) | 2017-11-07 | 2017-11-07 | 一种业务编码的生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107885822A true CN107885822A (zh) | 2018-04-06 |
Family
ID=61779066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711085680.1A Pending CN107885822A (zh) | 2017-11-07 | 2017-11-07 | 一种业务编码的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107885822A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109766362A (zh) * | 2018-12-28 | 2019-05-17 | 北京字节跳动网络技术有限公司 | 数据处理方法及装置 |
CN109801117A (zh) * | 2018-12-20 | 2019-05-24 | 航天信息股份有限公司 | 一种用于对电子票据进行赋码的方法及系统 |
CN109819055A (zh) * | 2019-03-15 | 2019-05-28 | 四川长虹电器股份有限公司 | 一种同时支持Ribbon和Eureka实现负载均衡的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714171A (zh) * | 2009-12-29 | 2010-05-26 | 金蝶软件(中国)有限公司 | 业务单据编码方法、装置及网络系统 |
CN106911780A (zh) * | 2017-02-28 | 2017-06-30 | 北京三快在线科技有限公司 | 业务id生成方法、装置及系统 |
CN107067262A (zh) * | 2015-09-30 | 2017-08-18 | 阿里巴巴集团控股有限公司 | 业务处理方法、系统及用户终端 |
-
2017
- 2017-11-07 CN CN201711085680.1A patent/CN107885822A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714171A (zh) * | 2009-12-29 | 2010-05-26 | 金蝶软件(中国)有限公司 | 业务单据编码方法、装置及网络系统 |
CN107067262A (zh) * | 2015-09-30 | 2017-08-18 | 阿里巴巴集团控股有限公司 | 业务处理方法、系统及用户终端 |
CN106911780A (zh) * | 2017-02-28 | 2017-06-30 | 北京三快在线科技有限公司 | 业务id生成方法、装置及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109801117A (zh) * | 2018-12-20 | 2019-05-24 | 航天信息股份有限公司 | 一种用于对电子票据进行赋码的方法及系统 |
CN109766362A (zh) * | 2018-12-28 | 2019-05-17 | 北京字节跳动网络技术有限公司 | 数据处理方法及装置 |
CN109766362B (zh) * | 2018-12-28 | 2021-07-20 | 北京字节跳动网络技术有限公司 | 数据处理方法及装置 |
CN109819055A (zh) * | 2019-03-15 | 2019-05-28 | 四川长虹电器股份有限公司 | 一种同时支持Ribbon和Eureka实现负载均衡的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11146502B2 (en) | Method and apparatus for allocating resource | |
CN109274731B (zh) | 基于多租户技术的web服务的部署、调用方法和装置 | |
US11064053B2 (en) | Method, apparatus and system for processing data | |
CN110019125B (zh) | 数据库管理的方法和装置 | |
CN111091429A (zh) | 电子票据标识分配方法及装置、电子票据生成系统 | |
US7657609B2 (en) | Data transfer in a multi-environment document management system access | |
US7650609B2 (en) | Multi-environment document management system access | |
CN102333108A (zh) | 分布式缓存同步系统及方法 | |
CN109245988A (zh) | 监控邮件自动发送方法、系统、计算机设备和存储介质 | |
CN102455930A (zh) | 一种应用程序分类安装的方法 | |
CN107885822A (zh) | 一种业务编码的生成方法及装置 | |
CN110928912A (zh) | 一种生成唯一标识的方法和装置 | |
CN103886104A (zh) | 一种适用于电力系统的分布式实时数据库管理系统及实现方法 | |
EP2778968A1 (en) | Mobile telecommunication device remote access to cloud-based or virtualized database systems | |
CN104216902A (zh) | 一种基于服务器分页的分页数据装载方法、装置和系统 | |
CN112925607A (zh) | 一种系统扩缩容方法及装置、电子设备 | |
CN110659124A (zh) | 一种消息处理方法和装置 | |
CN104320488A (zh) | 代理服务器系统及代理服务方法 | |
US20070150448A1 (en) | Method and apparatus for optimizing large data set retrieval | |
CN109586970B (zh) | 资源分配方法、装置及系统 | |
CN105245369A (zh) | 一种支持多传输协议的组件发布容器方法 | |
CN102542019A (zh) | 识别码存储方法及系统、识别码索引方法及系统 | |
CN110365743B (zh) | 一种基于Zookeeper实现的支持多种可自定义负载算法的负载均衡器实现方法 | |
CN113641706A (zh) | 数据查询的方法和装置 | |
CN107968798A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180406 |
|
RJ01 | Rejection of invention patent application after publication |