CN110943971A - 一种事件业务处理方法及*** - Google Patents
一种事件业务处理方法及*** Download PDFInfo
- Publication number
- CN110943971A CN110943971A CN201910988625.6A CN201910988625A CN110943971A CN 110943971 A CN110943971 A CN 110943971A CN 201910988625 A CN201910988625 A CN 201910988625A CN 110943971 A CN110943971 A CN 110943971A
- Authority
- CN
- China
- Prior art keywords
- event
- service
- original
- java
- original service
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种事件业务处理方法及***,其中,事件业务处理方法包括:加载java事件采集客户端,将java事件采集客户端植入原始业务***;通过java事件采集客户端获取原始业务***的业务流转信息,根据业务流转信息形成原始业务事件,将原始业务事件汇入消息队列;由事件发布/订阅***发布消息队列中的原始业务事件;根据规则预定义调度策略,对事件发布/订阅***发布的原始业务事件进行动态分配调度。该事件业务处理方法通过配置java事件采集客户端获取原始业务***的流转信息以形成事件,一种业务或事件发生变化不需要修改***源代码,提高了***的业务灵活性和安全性。
Description
技术领域
本发明涉及计算机应用技术领域,具体涉及到一种事件业务处理方法及***。
背景技术
随着计算机应用技术发展规模的不断扩大,计算机应用在人们生活的各个领域,很多业务都通过计算机***来完成。通常由于***访问量的不断增加,大数据业务对计算机资源占比普遍很大,导致多任务并行能力有限,任务执行过程中管理难度大,安全控制力度差,程序代码之间关联度过高,而事件(Event)无处不在,每个事件提供者产生的事件亦各不相同。由于缺乏事件的统一描述,对于事件的开发者来说需要不断的重复学习如何处理不同类型的事件,这便限制了类库、工具和基础设施在跨环境(如SDK、事件路由或跟踪***)提供事件数据方面的潜力,从事件数据本身实现的可移植性和生产力上受到了阻碍。另外,若要完成新业务扩展或采集,通常需要修改原***java代码,在接口调用或接口实现的类中实现植入层,把有关业务信息通过接口、异步消息、自定义套接字(socket)信息等方式进行集成,然后再对获取到的数据进行存取和逻辑处理。然而,通过源代码修改方式进行集成,可能会影响被改动方的业务和性能,而且通过代码集成会出现紧耦合问题,如果业务或事件发生变化,都需要调整代码,不能很好地控制业务性能压力问题,不好对接入等进行统一管理,若某个接口需要调整,极可能会涉及到双方都需要调整,对***的安全和影响范围控制有一定的风险,亦会影响新***和原***的业务灵活度。
发明内容
有鉴于此,本发明要解决现有技术中业务或事件发生变化时修改调整已有代码而影响新***和原***的业务灵活度,对***的安全和影响范围控制均有一定风险的问题,从而提供一种事件业务处理方法及***。
根据第一方面,本发明实施例提供了一种事件业务处理方法,包括以下步骤:加载java事件采集客户端,将所述java事件采集客户端植入原始业务***;通过所述java事件采集客户端获取所述原始业务***的业务流转信息,根据所述业务流转信息形成原始业务事件,将所述原始业务事件汇入消息队列;由事件发布/订阅***发布所述消息队列中的原始业务事件;根据规则预定义调度策略,对所述事件发布/订阅***发布的所述原始业务事件进行动态分配调度。
结合第一方面,在第一方面第一实施方式中,所述事件业务处理方法还包括提供第三方接口,与第三方终端进行事件业务的数据传输;通过所述java事件采集客户端获取原始业务***的业务流转信息,包括:通过所述java事件采集客户端调用所述第三方接口,获取所述第三方终端发送的原始业务事件;和/或通过所述java事件采集客户端获取原始业务***的业务流转信息。
结合第一方面,在第一方面第二实施方式中,通过所述java事件采集客户端获取原始业务***的业务流转信息,根据所述业务流转信息形成原始业务事件,将所述原始业务事件汇入消息队列的步骤,包括:通过所述java事件采集客户端提供的应用程序接口API,相应地将java探针动态注入接口或函数;使用所述动态注入接口或函数的java探针截获所述原始业务***的所述业务流转信息;将所述业务流转信息转换为符合CloudEvent国际规范的原始业务事件;将所述原始业务事件通过流的方式汇入所述消息队列。
结合第一方面,在第一方面第三实施方式中,通过java启动参数方式加载所述java事件采集客户端。
结合第一方面,在第一方面第四实施方式中,所述提供第三方接口,与第三方终端进行事件业务的数据传输,包括,对所述事件业务进行格式转换,生成符合与第三方终端进行数据传输的数据格式;编制第三方终端接口,使功能指标与接口设计文档一致;测试与所述原始业务***相关联的所述第三方终端接口,检查数据的交换,传输和控制管理过程。
结合第一方面,在第一方面第五实施方式中,所述根据规则预定义调度策略,对所述事件发布/订阅***发布的所述原始业务事件进行动态分配调度,包括:对所述事件发布/订阅***的所述原始业务事件进行格式转换,生成符合进行调度的数据格式;根据原始业务事件的属性、业务处理***压力、网络情况以及租户信息任意一种信息定义调度策略;根据所述调度策略对所述原始业务事件配置调度安排;按照所述调度策略以及调度安排对所述原始业务事件进行业务调度。
根据第二方面,本发明实施例提供了一种事件业务处理***,包括:加载模块,用于加载java事件采集客户端,将所述java事件采集客户端植入原始业务***;事件采集模块,用于通过所述java事件采集客户端获取所述原始业务***的业务流转信息,根据所述业务流转信息形成原始业务事件,将所述原始业务事件汇入消息队列;发布/订阅模块:用于通过事件发布/订阅***发布所述消息队列中的原始业务事件;调度模块,用于根据规则预定义调度策略,对所述事件发布/订阅***发布的所述原始业务事件进行动态分配调度。
结合第二方面,在第二方面第一实施方式中,所述事件业务处理***还包括第三方接口模块,用于提供第三方接口,与第三方终端进行事件业务的数据传输;调用模块,用于通过所述java事件采集客户端调用所述第三方接口,获取所述第三方终端发送的原始业务事件;和/或信息获取模块,用于通过所述java事件采集客户端获取原始业务***的业务流转信息。
结合第二方面,在第二方面第二实施方式中,所述事件采集模块,包括:应用程序接口API子模块,用于根据所述java事件采集客户端提供应用程序接口API,相应地将java探针动态注入接口或函数;信息截获子模块,用于使用所述动态注入接口或函数的java探针截获所述原始业务***的所述业务流转信息;信息转换子模块,用于将所述业务流转信息转换为符合CloudEvent国际规范的原始业务事件;汇入子模块,用于将所述原始业务事件通过流的方式汇入所述消息队列。
结合第二方面,在第二方面第三实施方式中,所述加载模块,包括:启动加载子模块,用于通过java启动参数方式加载所述java事件采集客户端。
结合第二方面,在第二方面第四实施方式中,所述发布/订阅模块包括:事件接收子模块,用于接收来自所述消息队列的所述原始业务事件;事件监控子模块,用于监控来自所述消息队列的所述原始业务事件;事件查询子模块,用于查询所述事件发布/订阅***的所述原始业务事件;权限控制子模块,用于控制访问所述事件发布/订阅***的权限;流量控制子模块,用于控制访问所述事件发布/订阅***的流量;事件发布子模块,用于发布来自所述消息队列的所述原始业务事件。
结合第二方面,在第二方面第四实施方式中,所述第三方接口模块包括,格式转换子模块,用于对所述事件业务进行格式转换,生成符合与第三方终端进行数据传输的数据格式;接口编制子模块,用于编制第三方终端接口,使功能指标与接口设计文档一致;接口调试子模块,用于测试与所述原始业务***相关联的所述第三方终端接口,检查数据的交换,传输和控制管理过程。
结合第二方面,在第二方面第五实施方式中,所述调度模块包括:格式转换子模块,用于对所述事件发布/订阅***的所述原始业务事件进行格式转换,生成符合进行调度的数据格式;调度策略定义子模块,用于根据原始业务事件的属性、业务处理***压力、网络情况以及租户信息任意一种信息定义调度策略;流程调度子模块,用于根据所述调度策略对所述原始业务事件配置调度安排;事件调度子模块,用于按照所述调度策略以及调度安排对所述原始业务事件进行业务调度。
根据第三方面,本发明实施例提供了一种计算机设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或第一方面任一实施方式中的事件业务处理方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面或第一方面任一实施方式中的事件业务处理方法。
本发明技术方案,具有如下优点:
1.本发明提供了一种事件业务处理方法,通过Java启动参数方式加载java事件采集客户端,将该java事件采集客户端植入原始业务***,然后java事件采集客户端获取原始业务***的业务流转信息形成原始业务事件,并汇入消息队列,由事件发布/订阅***发布,根据预定义的调度策略对所述事件发布/订阅***发布的所述原始业务事件进行动态分配调度,供其他业务***订阅,形成新的业务。此种方法使得原业务***无需修改已有代码,单纯事件的属性变化不需修改源程序,且实现了业务***和采集业务分离,不再紧耦合,解决了因某个接口调整导致相关业务***需要进行调整,进而影响***安全性和灵活性的问题。
2.本发明提供的事件业务处理方法中还包括提供第三方接口,与第三方终端进行事件业务的数据传输;通过java事件采集客户端获取原始业务***的业务流转信息,包括:通过所述java事件采集客户端调用所述第三方接口,获取所述第三方终端发送的原始业务事件;和/或通过所述java事件采集客户端获取原始业务***的业务流转信息。此方法提供实时和异步处理机制,对第三方接口及事件业务进行对接,方便对第三方接入进行统一管理。
3.本发明提供的事件业务处理方法中,通过java事件采集客户端提供应用程序接口API,相应地将java探针动态注入接口或函数,用以截获原始业务***的所述业务流转信息,然后将该业务流转信息转换为符合CloudEvent国际规范的原始业务事件,并通过流的方式将其汇入消息队列。动态注入接口或函数的Java探针截获业务流转信息,无需修改代码,简单配置就可以实时抓取代码的运行轨迹,实现了原业务***不需要修改调整代码,保证了***的灵活性和安全性。
4.本发明提供的事件业务处理方法中,根据规则预定义调度策略,对事件发布/订阅***发布的原始业务事件进行动态分配调度。此方法提供了根据事件属性、业务处理***压力情况、网络情况以及租户情况等信息进行业务的路由调度,有效的控制业务性能压力,保证了***业务和性能的灵活度。
5.本发明提供的事件业务处理方法中,由事件发布/订阅***发布消息队列中的原始业务事件。此方法通过对消息队列进行统一发布/订阅,提供事件接收、事件监控、事件查询、权限控制、流量控制以及事件发布功能,实现了事件的统一订阅管理。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中事件业务处理方法的一个具体示例的流程图;
图2为本发明实施例中事件业务处理方法的又一个具体示例的流程图;
图3为本发明实施例中事件业务处理方法对应S12的一个具体示例的流程图;
图4为本发明实施例中事件业务处理方法对应S14的一个具体示例的流程图;
图5为本发明实施例中事件业务处理方法对应S15的一个具体示例的流程图;
图6为本发明实施例中事件业务处理装置的一个具体示例的原理框图;
图7为本发明实施例中事件业务处理装置的又一个具体示例的原理框图;
图8为本发明实施例中事件业务处理装置的中事件采集模块的一个具体示例的原理框图;
图9为本发明实施例中事件业务处理装置的中发布/订阅模块的一个具体示例的原理框图;
图10为本发明实施例中事件业务处理装置的中调度模块的一个具体示例的原理框图;
图11为本发明实施例中事件业务处理装置的中第三方接口模块的一个具体示例的原理框图;
图12为本发明实施例的计算机设备的结构示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
本实施例提供一种事件业务处理方法,可用于Java语言开发的业务***中,需要异步方式完成新业务扩展或采集,首先通过Java启动参数方式将事件采集客户端植入业务***,采集原始业务事件并汇入消息队列由事件发布/订阅***发布,根据预定义的调度策略对发布的原始业务事件进行动态分配调度,供其他业务***订阅,如图1所示,该事件业务处理方法,用于新业务扩展中,包括如下步骤:
S11:加载java事件采集客户端,将所述java事件采集客户端植入原始业务***。通过java启动参数方式加载该事件采集客户端,该原始业务***可以是需要扩展新业务的业务***,也可以是通过第三方接口接入的其他业务***。
S12:通过所述java事件采集客户端获取所述原始业务***的业务流转信息,根据所述业务流转信息形成原始业务事件,将所述原始业务事件汇入消息队列。该原始事件可以是来自于特定业务***的业务事件,也可以是通过第三方接口接入的其他业务***的业务事件,以同样的方式对原始业务***以及其他业务***进行事件采集,并将采集到的原始业务事件汇入消息队列。
S13:由事件发布/订阅***发布所述消息队列中的原始业务事件。事件发布/订阅是一种消息范式,消息的发送者(原始业务***)不会将消息直接发送给特定的接收者(其他业务***),而是将发布的消息分为不同的类别,无需了解哪些业务***可能存在,同样的,业务***可以表达对一个多个类别的兴趣,只接受感兴趣的消息,无需了解哪些原始业务***存在。采集的原始事件汇入消息队列,再由消息队列将消息发布到事件发布/订阅***,以供其他业务***根据需要进行订阅。
S14:根据规则预定义调度策略,对所述事件发布/订阅***发布的所述原始业务事件进行动态分配调度。面对大量业务***应用的增加,所采集到的原始业务事件量随之增加,导致事件发布/订阅***中的事件数据大量增加,响应频率逐步提高,越来越大的压力作用到业务***中,此时需要进行调度管理,根据事件属性、业务处理***压力情况、网络情况、租户等信息进行业务的调度,提高业务***运行的灵活度。例如,根据***压力情况,业务处理和业务调度可以采用多线程的线程池进行处理,中间通过事件做异步处理。这样,如果***压力过大时,能够通过***性能监控对哪些事件的处理存在堆积,然后根据事件属性计算优先级,就可以根据优先级分配不同容量的线程进行处理,而事件处理与内存数据直接相关,此处直接使用Redis等进行内存操作,而非数据库操作,提高了***吞吐率。
本实施例提供的事件业务处理方法,通过java启动参数方式加载java事件采集客户端,将该java事件采集客户端植入原始业务***,截获原始业务***的业务流转信息形成原始业务事件,并汇入消息队列,由事件发布/订阅***发布,并通过根据规则预定义调度策略对事件发布/订阅***发布的原始业务事件进行动态分配调度,供其他业务***订阅,形成新的业务,实现了业务***和采集客户端分离,解决了现有技术中,事件业务处理通过修改源代码方式集成可能会影响被改动方的业务和性能,控制业务性能压力困难,且通过代码集成通常会出现紧耦合的问题,模块或***之间关系太紧密,存在相互调用,如果一个模块或***更新就会导致其他模块或***关联变化,难以重用特定的关联模块或***,而必须重新调整代码,通过该事件业务处理方法,当某个模块或***发生调整无需修改调整已有代码,不再紧耦合,解决了因某个接口调整导致相关业务***需要进行调整,进而影响***安全性和灵活性的问题。
可选的,在本发明的一些实施例中,如图2所示,该事件业务处理方法还包括如下步骤:
S15:提供第三方接口,与第三方终端进行事件业务的数据传输;通过java事件采集客户端获取第三方终端的业务流转信息,包括:通过java事件采集客户端调用第三方接口,获取第三方终端发送的原始业务事件;和/或通过java事件采集客户端获取第三方终端的业务流转信息。
本实施例提供的事件业务处理方法中还包括提供第三方接口,与第三方终端进行事件业务的数据传输,对第三方接口及事件业务进行对接,提供实时和异步处理机制,方便对第三方接入进行统一管理。
可选的,在本发明的一些实施例中,如图3所示,S12包括如下步骤:
S121:通过所述java事件采集客户端提供的应用程序编程接口API,相应地将java探针动态注入接口或函数。应用程序编程接口API是一组定义、程序及协议的集合,通过API接口实现不同业务***之间的相互通信。
S122:使用所述动态注入接口或函数的java探针截获所述原始业务***的所述业务流转信息。在配置文件中配置事件报名、接口名、方法名、参数字段和接口返回值,这些配置数据决定了事件所需要的字段,然后采用java探针动态注入接口,单纯的事件属性变化无需修改程序,通过简单配置部署便可以实时抓取代码的运行轨迹,业务***无需修改已有代码。
S123:将所述业务流转信息转换为符合CloudEvent国际规范的原始业务事件。每个事件提供者产生的事件各不相同,缺乏事件的统一描述。CloudEvent是一种规范,用于以通用格式描述事件数据,以提供跨服务、平台和***的交互能力,以此实现其他业务***订阅其感兴趣的事件或消息。通过向接口动态注入java探针,调用***API,然后把调用的名称、参数、返回值参数通过java序列化方法序列化为符合CloudEvent格式的数据,这个数据就是事件。
S124:将所述原始业务事件通过流的方式汇入所述消息队列。在java中有不同的流类来对应不同性质的输入/输出流,事件数据持续到达,数据量可能是无限的,采用流方式可实现事件数据的快速响应。
本实施例提供的事件业务处理方法,通过动态注入接口或函数的Java探针截获业务流转信息,实时抓取代码的运行轨迹,实现了原业务***变化无需修改调整已有代码,保证了***的灵活性和安全性。由于缺乏对事件的统一描述,事件数据本身实现的可移植性和生产力上受到了阻碍,通过将事件转换为符合CloudEvent国际规范的事件克服了事件描述不统一,事件数据可移植性差等问题。
可选的,在本发明的一些实施例中,如图4所示,S14包括如下步骤:
S141:对所述事件发布/订阅***的所述原始业务事件进行格式转换,生成符合进行调度的数据格式。将业务事件转换为符合调度策略的数据格式,以便于进行业务的调度。
S142:根据原始业务事件的属性、业务处理***压力、网络情况以及租户信息任一种信息定义调度策略。按照规则预定义调度策略,动态的分配路由以实现业务事件的动态调度。
S143:根据所述调度策略对所述原始业务事件配置调度安排。
S144:按照所述调度策略以及调度安排对所述原始业务事件进行业务调度。
本实施例提供的事件业务处理方法,根据规则预定义调度策略,对事件发布/订阅***发布的原始业务事件进行动态分配调度,根据事件属性、业务处理***压力情况、网络情况以及租户情况等信息进行业务的路由调度,能够有效的控制业务性能压力,保证了***业务和性能的灵活度。
可选的,在本发明的一些实施例中,如图5所示,S15包括如下步骤:
S151:对所述事件业务进行格式转换,生成符合与第三方终端进行数据传输的数据格式。将业务事件转换为便于在原始业务***与第三方终端之间传输的事件数据格式。
S152:编制第三方终端接口,使功能指标与接口设计文档一致。为了实现第三方终端与业务事件的对接,需要对第三方终端接口进行编制,以便与原始业务***进行对接。
S153:测试与所述原始业务***相关联的所述第三方终端接口,检查数据的交换,传输和控制管理过程。第三方终端利用第三方接口实现与原始业务***的对接,实时与业务事件进行对接,完成新业务的扩展。
本实施例提供的事件业务处理方法,通过与第三方接口进行数据传输,对第三方接口和事件进行业务对接,实现了实时和异步处理机制,方便对第三方接口接入的业务***进行统一管理。
实施例2
本施例提供一种事件业务处理***,如图6所示,包括:
加载模块21,用于加载java事件采集客户端,将所述java事件采集客户端植入原始业务***。通过java启动参数方式加载所述事件采集客户端,该原始业务***可以是需要扩展新业务的业务***,也可以是通过第三方接口接入的其他业务***。
事件采集模块22,用于通过所述java事件采集客户端获取所述原始业务***的业务流转信息,根据所述业务流转信息形成原始业务事件,将所述原始业务事件汇入消息队列。该原始事件可以是来自于特定业务***的业务事件,也可以是通过第三方接口接入的其他业务***的业务事件,以同样的方式对原始业务***以及其他业务***进行事件采集,并将采集到的原始业务事件汇入消息队列。
发布/订阅模块23:用于通过事件发布/订阅***发布所述消息队列中的原始业务事件。事件发布/订阅是一种消息范式,消息的发送者(原始业务***)不会将消息直接发送给特定的接收者(其他业务***),而是将发布的消息分为不同的类别,无需了解哪些业务***可能存在,同样的,业务***可以表达对一个多个类别的兴趣,只接受感兴趣的消息,无需了解哪些原始业务***存在。采集的原始事件汇入消息队列,再由消息队列将消息发布到事件发布/订阅***,以供其他业务***根据需要进行订阅。
调度模块24,用于根据规则预定义调度策略,对所述事件发布/订阅***发布的所述原始业务事件进行动态分配调度。面对大量业务***应用的增加,所采集到的原始业务事件量随之增加,导致事件发布/订阅***中的事件数据大量增加,响应频率逐步提高,越来越大的压力作用到业务***中,此时需要进行调度管理,根据事件属性、业务处理***压力情况、网络情况、租户等信息进行业务的调度,提高业务***运行的灵活度。
本实施例提供的事件业务处理***,通过加载模块加载java事件采集客户端,将该java事件采集客户端植入原始业务***,由事件采集模块截获原始业务***的业务流转信息形成原始业务事件,并汇入消息队列,再由发布/订阅模块发布所述原始业务事件,通过调度模块对原始业务事件进行动态分配调度以供其他业务***订阅,形成新的业务,实现了业务***和采集客户端分离,解决了现有技术中,事件业务处理通过修改源代码方式集成可能会影响被改动方的业务和性能,控制业务性能压力困难,且通过代码集成通常会出现紧耦合的问题,模块或***之间关系太紧密,存在相互调用,如果一个模块或***更新就会导致其他模块或***关联变化,难以重用特定的关联模块或***,而必须重新调整代码,通过该事件业务处理方法,当某个模块或***发生调整无需修改调整已有代码,不再紧耦合,解决了因某个接口调整导致相关业务***需要进行调整,进而影响***安全性和灵活性的问题。
可选的,在本发明的一些实施例中,如图7所示,该事件业务处理***还包括:
第三方接口模块25,用于提供第三方接口,与第三方终端进行事件业务的数据传输;
调用子模块251,用于通过所述java事件采集客户端调用所述第三方接口,获取所述第三方终端发送的原始业务事件;和/或
信息获取子模块252,用于通过所述java事件采集客户端获取原始业务***的业务流转信息。
本实施例提供的事件业务处理***中还包括第三方接口模块,与第三方终端进行事件业务的数据传输,对第三方接口及事件业务进行对接,提供实时和异步处理机制,方便对第三方接入进行统一管理。
可选的,在本发明的一些实施例中,如图8所示,事件采集模块22包括:
应用程序接口API子模块221,用于根据所述java事件采集客户端提供应用程序接口API,相应地将java探针动态注入接口或函数。应用程序编程接口API是一组定义、程序及协议的集合,通过API接口实现不同业务***之间的相互通信。
信息截获子模块222,用于使用所述动态注入接口或函数的java探针截获所述原始业务***的所述业务流转信息。采用java探针动态注入接口,单纯的事件属性变化无需修改程序,通过简单配置部署便可以实时抓取代码的运行轨迹,业务***无需修改已有代码。
信息转换子模块223,用于将所述业务流转信息转换为符合CloudEvent国际规范的原始业务事件。事件Event无处不在,然而每个事件提供者产生的事件各不相同,在事件发布之前将其转换为符合CloudEvent国际规范的事件。CloudEvent是一种规范,用于以通用格式描述事件数据,以提供跨服务、平台和***的交互能力,以此实现其他业务***订阅其感兴趣的事件或消息。
汇入子模块224,用于将所述原始业务事件通过流的方式汇入所述消息队列。java中有不同的流类来对应不同性质的输入/输出流,事件数据持续到达。
本实施例提供的事件业务处理***,通过信息截获子模块截获业务流转信息,实时抓取代码的运行轨迹,实现了原业务***变化无需修改调整已有代码,保证了***的灵活性和安全性。由于缺乏对事件的统一描述,事件数据本身实现的可移植性和生产力上受到了阻碍,通过信息转换子模块将事件转换为符合CloudEvent国际规范的事件克服了事件描述不统一,事件数据可移植性差等问题。
可选的,在本发明的一些实施例中,如图9所示,发布/订阅模块23包括:
事件接收子模块231,用于接收来自所述消息队列的所述原始业务事件;
事件监控子模块232,用于监控来自所述消息队列的所述原始业务事件;
事件查询子模块233,用于查询所述事件发布/订阅***的所述原始业务事件;
权限控制子模块234,用于控制访问所述事件发布/订阅***的权限;
流量控制子模块235,用于控制访问所述事件发布/订阅***的流量;
事件发布子模块236,用于发布来自所述消息队列的所述原始业务事件。
本实施例提供的事件业务处理***,由事件发布/订阅***发布消息队列中的原始业务事件,通过对消息队列进行统一发布/订阅,由事件接收子模块提供事件接收,事件监控子模块对事件进行监控,事件查询子模块对事件进行查询,权限控制子模块用于控制访问权限,流量控制子模块控制访问流量,事件发布子模块进行事件发布,实现了事件的统一订阅管理。
可选的,在本发明的一些实施例中,如图10所示,调度模块24包括:
格式转换子模块241,用于对所述事件发布/订阅***的所述原始业务事件进行格式转换,生成符合进行调度的数据格式。将业务事件转换为符合调度策略的数据格式,以便于进行业务的调度。
调度策略定义子模块242,用于根据原始业务事件的属性、业务处理***压力、网络情况以及租户信息任意一种信息定义调度策略。按照规则预定义调度策略,动态的分配路由以实现业务事件的动态调度。
流程调度子模块243,用于根据所述调度策略对所述原始业务事件配置调度安排;
事件调度子模块244,用于按照所述调度策略以及调度安排对所述原始业务事件进行业务调度。
本实施例提供的事件业务处理***,根据调度策略定义子模块预定义调度策略,由事件调度子模块对事件发布/订阅***发布的原始业务事件进行动态分配调度,根据事件属性、业务处理***压力情况、网络情况以及租户情况等信息进行业务的路由调度,能够有效的控制业务性能压力,保证了***业务和性能的灵活度。
可选的,在本发明的一些实施例中,如图11所示,第三方接口模块25包括:
格式转换子模块253,用于对所述事件业务进行格式转换,生成符合与第三方终端进行数据传输的数据格式。将业务事件转换为便于在原始业务***与第三方终端之间传输的事件数据格式。
接口编制子模块254,用于编制第三方终端接口,使功能指标与接口设计文档一致。为了实现第三方终端与业务事件的对接,需要对第三方终端接口进行编制,以便与原始业务***进行对接。
接口调试子模块255,用于测试与所述原始业务***相关联的所述第三方终端接口,检查数据的交换,传输和控制管理过程。第三方终端利用第三方接口实现与原始业务***的对接,实时与业务事件进行对接,完成新业务的扩展。
本实施例提供的事件业务处理***,通过与第三方接口进行数据传输,对第三方接口和事件进行业务对接,实现了实时和异步处理机制,方便对第三方接口接入的业务***进行统一管理。
实施例3
本发明实施例还提供了一种计算机设备,如图12所示,该计算机设备可以包括处理器31和存储器32,其中处理器31和存储器32可以通过总线或者其他方式连接,图12中以通过总线连接为例。
处理器31可以为中央处理器(Central Processing Unit,CPU)。处理器31还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器32作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的事件业务处理方法对应的程序指令/模块(例如,图6所示的加载模块21、事件采集模块22、发布/订阅模块23和调度模块24)。处理器31通过运行存储在存储器32中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的事件业务处理方法。
存储器32可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储处理器31所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器32可选包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至处理器31。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器32中,当被所述处理器31执行时,执行如图1-5所示实施例中的事件业务处理方法。
上述计算机设备具体细节可以对应参阅图1至图5所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (15)
1.一种事件业务处理方法,其特征在于,包括:
加载java事件采集客户端,将所述java事件采集客户端植入原始业务***;
通过所述java事件采集客户端获取所述原始业务***的业务流转信息,根据所述业务流转信息形成原始业务事件,将所述原始业务事件汇入消息队列;
由事件发布/订阅***发布所述消息队列中的原始业务事件;
根据规则预定义调度策略,对所述事件发布/订阅***发布的所述原始业务事件进行动态分配调度。
2.根据权利要求1所述的事件业务处理方法,其特征在于,还包括:
提供第三方接口,与第三方终端进行事件业务的数据传输;
通过所述java事件采集客户端获取原始业务***的业务流转信息,包括:
通过所述java事件采集客户端调用所述第三方接口,获取所述第三方终端发送的原始业务事件;和/或
通过所述java事件采集客户端获取原始业务***的业务流转信息。
3.根据权利要求1或2所述的事件业务处理方法,其特征在于,
通过所述java事件采集客户端获取原始业务***的业务流转信息,根据所述业务流转信息形成原始业务事件,将所述原始业务事件汇入消息队列的步骤,包括:
通过所述java事件采集客户端提供的应用程序接口API,相应地将java探针动态注入接口或函数;
使用所述动态注入接口或函数的java探针截获所述原始业务***的所述业务流转信息;
将所述业务流转信息转换为符合CloudEvent国际规范的原始业务事件;
将所述原始业务事件通过流的方式汇入所述消息队列。
4.根据权利要求1所述的事件业务处理方法,其特征在于,
所述加载java事件采集客户端包括,通过java启动参数方式加载所述java事件采集客户端。
5.根据权利要求1-4任一项所述的事件业务处理方法,其特征在于,
所述根据规则预定义调度策略,对所述事件发布/订阅***发布的所述原始业务事件进行动态分配调度,包括:
对所述事件发布/订阅***的所述原始业务事件进行格式转换,生成符合进行调度的数据格式;
根据原始业务事件的属性、业务处理***压力、网络情况以及租户信息任一种信息定义调度策略;
根据所述调度策略对所述原始业务事件配置调度安排;
按照所述调度策略以及调度安排对所述原始业务事件进行业务调度。
6.根据权利要求2所述的事件业务处理方法,其特征在于,
所述提供第三方接口,与第三方终端进行事件业务的数据传输,包括,
对所述事件业务进行格式转换,生成符合与第三方终端进行数据传输的数据格式;
编制第三方终端接口,使功能指标与接口设计文档一致;
测试与所述原始业务***相关联的所述第三方终端接口,检查数据的交换,传输和控制管理过程。
7.一种事件业务处理***,其特征在于,包括:
加载模块,用于加载java事件采集客户端,将所述java事件采集客户端植入原始业务***;
事件采集模块,用于通过所述java事件采集客户端获取所述原始业务***的业务流转信息,根据所述业务流转信息形成原始业务事件,将所述原始业务事件汇入消息队列;
发布/订阅模块:用于通过事件发布/订阅***发布所述消息队列中的所述原始业务事件;
调度模块,用于根据规则预定义调度策略,对所述事件发布/订阅***发布的所述原始业务事件进行动态分配调度。
8.根据权利要求7所述的事件业务处理***,其特征在于,还包括:
第三方接口模块,用于提供第三方接口,与第三方终端进行事件业务的数据传输;
调用模块,用于通过所述java事件采集客户端调用所述第三方接口,获取所述第三方终端发送的原始业务事件;和/或
信息获取模块,用于通过所述java事件采集客户端获取原始业务***的业务流转信息。
9.根据权利要求7或8所述的事件业务处理***,其特征在于,
所述事件采集模块,包括:
应用程序接口API子模块,用于根据所述java事件采集客户端提供应用程序接口API,相应地将java探针动态注入接口或函数;
信息截获子模块,用于使用所述动态注入接口或函数的java探针截获所述原始业务***的所述业务流转信息;
信息转换子模块,用于将所述业务流转信息转换为符合CloudEvent国际规范的原始业务事件;
汇入子模块,用于将所述原始业务事件通过流的方式汇入所述消息队列。
10.根据权利要求7所述的事件业务处理***,其特征在于,
所述加载模块,包括:启动加载子模块,用于通过java启动参数方式加载所述java事件采集客户端。
11.根据权利要求7-10任一项所述的事件业务处理***,其特征在于,
所述发布/订阅模块包括:
事件接收子模块,用于接收来自所述消息队列的所述原始业务事件;
事件监控子模块,用于监控来自所述消息队列的所述原始业务事件;
事件查询子模块,用于查询所述事件发布/订阅***的所述原始业务事件;
权限控制子模块,用于控制访问所述事件发布/订阅***的权限;
流量控制子模块,用于控制访问所述事件发布/订阅***的流量;
事件发布子模块,用于发布来自所述消息队列的所述原始业务事件。
12.根据权利要求7-11任一项所述的事件业务处理***,其特征在于,
所述调度模块包括:
格式转换子模块,用于对所述事件发布/订阅***的所述原始业务事件进行格式转换,生成符合进行调度的数据格式;
调度策略定义子模块,用于根据原始业务事件的属性、业务处理***压力、网络情况以及租户信息任意一种信息定义调度策略;
流程调度子模块,用于根据所述调度策略对所述原始业务事件配置调度安排;
事件调度子模块,用于按照所述调度策略以及调度安排对所述原始业务事件进行业务调度。
13.根据权利要求8所述的事件业务处理***,其特征在于,所述第三方接口模块包括,
格式转换子模块,用于对所述事件业务进行格式转换,生成符合与第三方终端进行数据传输的数据格式;
接口编制子模块,用于编制第三方终端接口,使功能指标与接口设计文档一致;
接口调试子模块,用于测试与所述原始业务***相关联的所述第三方终端接口,检查数据的交换,传输和控制管理过程。
14.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如权利要求1-6中任一项所述的事件业务处理方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如权利要求1-6中任一项所述的事件业务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910988625.6A CN110943971A (zh) | 2019-10-17 | 2019-10-17 | 一种事件业务处理方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910988625.6A CN110943971A (zh) | 2019-10-17 | 2019-10-17 | 一种事件业务处理方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110943971A true CN110943971A (zh) | 2020-03-31 |
Family
ID=69905782
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910988625.6A Pending CN110943971A (zh) | 2019-10-17 | 2019-10-17 | 一种事件业务处理方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110943971A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615096A (zh) * | 2021-11-19 | 2022-06-10 | 亚信科技(中国)有限公司 | 基于事件驱动架构的电信计费方法、***及相关设备 |
CN115442203A (zh) * | 2022-08-19 | 2022-12-06 | 上海数禾信息科技有限公司 | 消息事件处理方法、组件、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053839A (zh) * | 2010-12-31 | 2011-05-11 | 山东中创软件商用中间件股份有限公司 | 监控探针生成方法和装置 |
CN102340495A (zh) * | 2010-07-26 | 2012-02-01 | ***通信集团广东有限公司 | 一种支撑跨***业务联动的事件中心及其事件处理方法 |
CN104077284A (zh) * | 2013-03-26 | 2014-10-01 | ***通信集团湖北有限公司 | 一种数据安全访问方法及*** |
CN104243619A (zh) * | 2014-10-17 | 2014-12-24 | 上海瀚银信息技术有限公司 | 一种分布式移动支付*** |
US20150135197A1 (en) * | 2013-11-12 | 2015-05-14 | International Business Machines Corporation | Accessing business object resources for a machine-to-machine communication environment |
CN106548327A (zh) * | 2016-11-09 | 2017-03-29 | 国云科技股份有限公司 | 一种工作流***与其它第三方***集成的方法 |
-
2019
- 2019-10-17 CN CN201910988625.6A patent/CN110943971A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102340495A (zh) * | 2010-07-26 | 2012-02-01 | ***通信集团广东有限公司 | 一种支撑跨***业务联动的事件中心及其事件处理方法 |
CN102053839A (zh) * | 2010-12-31 | 2011-05-11 | 山东中创软件商用中间件股份有限公司 | 监控探针生成方法和装置 |
CN104077284A (zh) * | 2013-03-26 | 2014-10-01 | ***通信集团湖北有限公司 | 一种数据安全访问方法及*** |
US20150135197A1 (en) * | 2013-11-12 | 2015-05-14 | International Business Machines Corporation | Accessing business object resources for a machine-to-machine communication environment |
CN104243619A (zh) * | 2014-10-17 | 2014-12-24 | 上海瀚银信息技术有限公司 | 一种分布式移动支付*** |
CN106548327A (zh) * | 2016-11-09 | 2017-03-29 | 国云科技股份有限公司 | 一种工作流***与其它第三方***集成的方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615096A (zh) * | 2021-11-19 | 2022-06-10 | 亚信科技(中国)有限公司 | 基于事件驱动架构的电信计费方法、***及相关设备 |
CN114615096B (zh) * | 2021-11-19 | 2024-03-08 | 亚信科技(中国)有限公司 | 基于事件驱动架构的电信计费方法、***及相关设备 |
CN115442203A (zh) * | 2022-08-19 | 2022-12-06 | 上海数禾信息科技有限公司 | 消息事件处理方法、组件、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110532020B (zh) | 一种微服务编排的数据处理方法、装置及*** | |
CN107729139B (zh) | 一种并发获取资源的方法和装置 | |
US9497096B2 (en) | Dynamic control over tracing of messages received by a message broker | |
CN109117252B (zh) | 基于容器的任务处理的方法、***及容器集群管理*** | |
US11818152B2 (en) | Modeling topic-based message-oriented middleware within a security system | |
CN104572277A (zh) | 一种线程流控方法和装置 | |
US10608953B2 (en) | Platform with multiple execution engines | |
US20220138074A1 (en) | Method, electronic device and computer program product for processing data | |
US10608915B2 (en) | Providing dynamic latency in an integration flow | |
US20230275976A1 (en) | Data processing method and apparatus, and computer-readable storage medium | |
CN110943971A (zh) | 一种事件业务处理方法及*** | |
CN113867600A (zh) | 处理流式数据的开发方法、装置和计算机设备 | |
CN110968439B (zh) | ***间的消息通知方法、装置、服务器、***及存储介质 | |
CN113687958A (zh) | 数据处理方法、***、计算机设备和存储介质 | |
US11848983B2 (en) | Remotely discover and map a network resource model in a cloud environment | |
CN112765246B (zh) | 任务处理方法、装置、电子设备和存储介质 | |
US11663349B2 (en) | System and method for managing data object creation | |
US20190205182A1 (en) | Unified monitoring interface | |
US20070198680A1 (en) | Method and system for network management data collection | |
CN109005468B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN116149761A (zh) | 一种车端规则引擎实现方法及装置、电子设备、存储介质 | |
US11650846B2 (en) | Method, device, and computer program product for job processing | |
CN114647415A (zh) | 方面感知流计算 | |
CN112416980A (zh) | 数据业务处理方法、装置及设备 | |
CN113778850A (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: 20200331 |
|
RJ01 | Rejection of invention patent application after publication |