CN111459625A - 一种基于微服务的流程调度方法 - Google Patents
一种基于微服务的流程调度方法 Download PDFInfo
- Publication number
- CN111459625A CN111459625A CN202010150159.7A CN202010150159A CN111459625A CN 111459625 A CN111459625 A CN 111459625A CN 202010150159 A CN202010150159 A CN 202010150159A CN 111459625 A CN111459625 A CN 111459625A
- Authority
- CN
- China
- Prior art keywords
- service
- flow
- asynchronous
- micro
- microservice
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000001360 synchronised effect Effects 0.000 claims abstract description 6
- 230000003993 interaction Effects 0.000 claims description 4
- 230000004913 activation Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 15
- 230000001960 triggered effect Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及软件信息领域,提供了一种基于微服务的流程调度方法,其主旨在于解决企业业务的不断发展和分布式架构的开发方式,使用多个不同模块功能的流程控制和调度不能满足微服务架构下的分布式流程控制的问题,其主要方案包括步骤:S1.将业务抽象成统一的时间类型。S2.形成统一消息列队。S3.将服务的调用关系分化为同步和异步。
Description
技术领域
本发明涉及服务系统的流程调度技术领域,尤其涉及一种基于微服务的流程调度方法。
背景技术
现有工作流或流程引擎中,比如说activiti、swf,主要通过对一个应用的嵌入,实现对于一个服务项目中多个不同模块功能之间的流程控制和调度关系。但随着企业业务的不断发展和分布式架构的开发方式,使用多个不同模块功能的流程控制和调度不能满足微服务架构下的分布式流程控制,加大了开发成本。同时企业的业务分散在多个微服务中,使得微服务流程不可见。
发明内容
本方法通过消息列队,将原有的微服务分布式之间的调用关系,从编排式构建为统一的编制模式,即从零散式调用转为统一的调用模式,来实现服务之间的统一治理及集中化调用。该方法用来解决项目开发的快速迭代及功能开发成本的矛盾,使功能独立化,通过自由组合的方式完成业务高速变化。
通过组装各种服务的关系,完成整体流程的组合,即在独立服务构建完成之后,无需进行多次开发或定制,只需要根据业务需要进行功能组合即可满足业务要求,从而减少开发的人力及时间成本,并且可以让整体的业务流程更加的清晰,易于管理。
为实现上述目的,本发明提供了一种微服务调用架构,包括:
优选地,将现有业务抽象成统一的事件类型。
优选地,使用统一抽象的事务类型,分配组合,归类业务的组合方式。
优选地,事件具有相同的特性,不同属性可以定义不同的事件。
优选地,根据识别事件类型,获取业务配置的流程,读取数据库配置信息,构建预期的DAG流程,并启动流程,进行业务链激活执行。
优选地,通过业务流程,将上游参数和配置下传,通过消息列队下方,提供下游、动态的入参及配置,达到整体功能,通过不同的业务的动态应用。
优选地,通过消息列队,进一步将各服务及各功能之间进行了解,完成服务和服务的实时交互,并且通过队列的特性,控制整体队列的消费能力,达到统一限流的功能。
优选地,将服务的调用关系分化为同步和异步两种类型,控制服务的实时或异步的响应方式,并配置节点是否继续下个服务调用,当在一个业务流中,某个服务调用发生错误或异常时,我们可以通过在外侧流程调度中添加重试机制,即可到达容错的目的,同时完全不影响修改开发以及下游的调度的服务及其代码,达到目的。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明中所述服务的流程调度方法图。
图2为本发明中所述微服务的流程调度和方法的结构框图。
具体实施方式
一种事件定义为一种类型,按事件的不同分成不同组合,归类组合方式,分类后事件开始,将该事件定义为实施例。
对实施例的事件类型识别,识别事件类型可触发两种流程,选择确认识别事件触发默认流程,选择否定识别事件触发制定流程。
触发默认流程后,默认流程加载流程配置,分离在线离线流程。
触发指定流程后,指定流程加载流程配置,分离在线离线流程。
启动事件持久化。
给消息列队发送消息,开启默认流程,获取业务配置流程,读取数据原配置信息,构建预期的DAG流程,进行业务链激活执行程序。
给消息列队发送消息,开启制定流程,获取业务配置流程,读取数据原配置信息,构建预期的DAG流程,进行业务链激活执行程序。
按照实施例识别的事件类型,将事件按照事件特点确定为根据选择的业务流程,将上游参数和配置下传的方式通过消息队列进行下放,提供下游,动态的入参及配置,达到所述功能,根据不同的业务动态应用。
以上所述的构建消息队列,是指服务与服务之间实现直接的交互。
直接交互的方式具体包括:
按照队列的事件特征,如实施例的特征包括A、B、C、D,按照队列特征依次排序,以实施例的四个特征A-B-C-D为顺序展开。
按照队列的行为特征,如实施例的行为特征H、I、J、K,按照队列行为特征依次排序,以实施例的四个行为特征H-I-J-K为顺序展开,等。
将消息列队的调用关系分化为同步和异步两种类型。
确认为异步消息,调用微服务的异步接口。
确认为同步消息,调用微服务同步逻辑。
调用微服务同步逻辑时,配置异常节点,如实施例在调用微服务时发生错误或异常,通过在外侧流程调度中添加重试机制。
判断实施例调用微服务同步逻辑时异常,创建节点,发送消息,判断是否结束节点。
Claims (4)
1.一种基于微服务项下的流程调度方法,其特征在于,包括以下步骤:
S1.将业务抽象成统一的时间类型。
S2.形成消息列队。
S3.服务的调用关系分化为同步和异步。
2.根据权利要求1所述的一种基于微服务的流程调度方法,其特征在于,所述步骤S1包括以下步骤:
步骤1:将现有的业务统一为一种事件类型
步骤2:统一类型的方式包括按事件特征、行为特征。
步骤3:按特征分配组合,归类业务的组合方式。
3.根据权利要求1所述的一种基于微服务流程调度方法,其特征在于,所述步骤S2包括以下步骤:
步骤1:根据识别的事件,获取业务配置流程,读取数据库配置信息,构建预期的DAG流程,开启流程,进行业务链激活执行。
步骤2:构建消息列队。
步骤3:将各服务与服务形成实时交互。
步骤4:队列按照其特性排序,统一限流。
4.根据权利要求1所述的一种基于微服务的流程调度方法,其特征在于,所述步骤S3包括以下步骤:
步骤1:将服务的调用关系分为同步和异步。
步骤2:确认为同步消息,调用微服务同步逻辑。
步骤3:确认为异步消息,调用微服务的异步接口。
步骤4:当同步或异步发生错误、异常时,在外侧流程调度中添加重试装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010150159.7A CN111459625A (zh) | 2020-03-02 | 2020-03-02 | 一种基于微服务的流程调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010150159.7A CN111459625A (zh) | 2020-03-02 | 2020-03-02 | 一种基于微服务的流程调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111459625A true CN111459625A (zh) | 2020-07-28 |
Family
ID=71684177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010150159.7A Withdrawn CN111459625A (zh) | 2020-03-02 | 2020-03-02 | 一种基于微服务的流程调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459625A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112153108A (zh) * | 2020-08-14 | 2020-12-29 | 中国科学院电子学研究所苏州研究院 | 一种面向微服务架构的消息传输系统及其方法 |
CN118014334A (zh) * | 2024-04-08 | 2024-05-10 | 微神马科技(大连)有限公司 | 一种业务记录方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1250579A (zh) * | 1997-01-17 | 2000-04-12 | 艾利森电话股份有限公司 | 移动通信系统中的中心无线网控制 |
CN106487594A (zh) * | 2016-10-31 | 2017-03-08 | 中国人民解放军91655部队 | 基于微服务组件的网络流量采集和分析系统 |
CN107491858A (zh) * | 2017-07-05 | 2017-12-19 | 北京科东电力控制系统有限责任公司 | 一种基于微服务应用架构的电力交易平台 |
CN109542639A (zh) * | 2018-11-06 | 2019-03-29 | 用友网络科技股份有限公司 | 一种保障微服务调用数据一致性的处理方法、处理装置 |
CN110287249A (zh) * | 2019-06-17 | 2019-09-27 | 中电科大数据研究院有限公司 | 一种基于微服务架构的服务系统 |
-
2020
- 2020-03-02 CN CN202010150159.7A patent/CN111459625A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1250579A (zh) * | 1997-01-17 | 2000-04-12 | 艾利森电话股份有限公司 | 移动通信系统中的中心无线网控制 |
CN106487594A (zh) * | 2016-10-31 | 2017-03-08 | 中国人民解放军91655部队 | 基于微服务组件的网络流量采集和分析系统 |
CN107491858A (zh) * | 2017-07-05 | 2017-12-19 | 北京科东电力控制系统有限责任公司 | 一种基于微服务应用架构的电力交易平台 |
CN109542639A (zh) * | 2018-11-06 | 2019-03-29 | 用友网络科技股份有限公司 | 一种保障微服务调用数据一致性的处理方法、处理装置 |
CN110287249A (zh) * | 2019-06-17 | 2019-09-27 | 中电科大数据研究院有限公司 | 一种基于微服务架构的服务系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112153108A (zh) * | 2020-08-14 | 2020-12-29 | 中国科学院电子学研究所苏州研究院 | 一种面向微服务架构的消息传输系统及其方法 |
CN118014334A (zh) * | 2024-04-08 | 2024-05-10 | 微神马科技(大连)有限公司 | 一种业务记录方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111930372B (zh) | 一种通过可拖拽流程图实现的服务编排解决方法及系统 | |
US20140013315A1 (en) | Scheduled and quarantined software deployment based on dependency analysis | |
CN112463211A (zh) | 一种兼容多种开发架构的系统架构改造方法及系统架构 | |
CN109656782A (zh) | 可视化调度监控方法、装置及服务器 | |
CN109739550B (zh) | 一种基于互联网分布式下的微服务业务调度方法 | |
CN111459625A (zh) | 一种基于微服务的流程调度方法 | |
CN102968303A (zh) | 程序设计系统和程序设计方法 | |
CN110503408B (zh) | 一种基于自定义配置的业务流程管理系统 | |
CN112882846B (zh) | 消息队列的数据处理方法、装置、计算机设备和存储介质 | |
CN111580793A (zh) | 执行服务的方法、装置、计算机设备和存储介质 | |
CN114816730A (zh) | 一种机器人流程自动化云服务系统及实现方法 | |
US20070083866A1 (en) | Leveraging advanced queues to implement event based job scheduling | |
CN114816694A (zh) | 一种多流程协作的rpa任务调度方法及装置 | |
CA2561640A1 (en) | Inter-agent communication | |
CN116661978B (zh) | 一种分布式的流程处理方法、装置及分布式业务流程引擎 | |
CN112365239A (zh) | 一种基于事件的云服务管理处置方法及系统 | |
CN110780869A (zh) | 一种分布式批量调度 | |
CN116303276A (zh) | 一种springbatch嵌套脚本实现文件导出的方法 | |
CN113626209A (zh) | 一种应用于交易领域的基于状态机的事件驱动方法和系统 | |
US20060052965A1 (en) | Event driven testing method, system and program product | |
CN112540838B (zh) | 系统资源调度方法及装置、计算机存储介质 | |
CN115033590A (zh) | 一种多域数据融合的方法、装置和存储介质 | |
CN113946446A (zh) | 基于消息队列统一处理用户任务的方法 | |
CN114296809B (zh) | 一种基于操作系统的对象模型构建方法及其系统调用接口 | |
CN118626398B (zh) | 基于celery分布式的EDA工具测试方法及系统 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200728 |