CN109271259B - Enterprise service bus system, data processing method, terminal and storage medium - Google Patents
Enterprise service bus system, data processing method, terminal and storage medium Download PDFInfo
- Publication number
- CN109271259B CN109271259B CN201810928884.5A CN201810928884A CN109271259B CN 109271259 B CN109271259 B CN 109271259B CN 201810928884 A CN201810928884 A CN 201810928884A CN 109271259 B CN109271259 B CN 109271259B
- Authority
- CN
- China
- Prior art keywords
- esb
- subsystem
- data request
- message
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
技术领域technical field
本发明涉及计算机技术领域,具体涉及一种重模式企业服务总线系统、重模式企业服务总线数据处理方法、终端及存储介质。The invention relates to the field of computer technology, in particular to a heavy-mode enterprise service bus system, a heavy-mode enterprise service bus data processing method, a terminal and a storage medium.
背景技术Background technique
随着计算机信息系统的发展,信息系统也越来越庞大、越来越复杂。在连接对象比较多的情况时,点对点的连接方式成本高,可用性和可维护性低,因而,总线的概念随之被引入到信息系统的架构建设上。跟随面向服务架构(Service oriented architecture,SOA)的概念,信息系统的总线通常叫服务总线。其战略层的总线称之为企业服务总线(Enterprise Service Bus,ESB)。企业服务总线是一个具有标准接口、实现了互连、通信、服务路由、支持实现SOA的企业级信息系统基础平台。With the development of computer information system, the information system is becoming larger and more complex. When there are many connection objects, the point-to-point connection method has high cost and low availability and maintainability. Therefore, the concept of bus is introduced into the architecture construction of information system. Following the concept of Service oriented architecture (SOA), the bus of an information system is usually called a service bus. The bus of its strategic layer is called enterprise service bus (Enterprise Service Bus, ESB). Enterprise service bus is an enterprise-level information system basic platform with standard interfaces, realizing interconnection, communication, service routing, and supporting SOA.
在一些选择重模式(自营模式)的企业中,因涉及到中间环节足够多,控制力强,但若想将每个环节都做好,其运转成本非常高,因而有必要建立一种企业服务总线的架构,减低企业运营成本、管理成本。In some enterprises that choose the heavy model (self-operated model), because there are enough intermediate links involved and strong control, but if you want to do a good job in each link, the operating cost is very high, so it is necessary to establish an enterprise The architecture of the service bus reduces the operating cost and management cost of the enterprise.
发明内容SUMMARY OF THE INVENTION
鉴于以上内容,有必要提出一种重模式企业服务总线系统、重模式企业服务总线数据处理方法、终端及存储介质,能够将不同的数据请求的请求方发送的数据请求转换成统一的报文和请求协议,并实现了同步处理机制转成异步处理机制的功能。In view of the above, it is necessary to propose a heavy-mode enterprise service bus system, a heavy-mode enterprise service bus data processing method, a terminal and a storage medium, which can convert data requests sent by requesters of different data requests into unified messages and Request protocol, and realize the function of converting synchronous processing mechanism into asynchronous processing mechanism.
本发明的第一方面提供一种企业服务总线系统,所述企业服务总线系统通讯连接多个企业系统和多个第三方系统,所述企业服务总线系统包括:ESB-API子系统、KAFKA子系统、ESB-CONSUMER子系统、ESB-PROXY-IN子系统、ESB-PROXY-OUT子系统、ESB-FILE-PROXY-OUT子系统,所述KAFKA子系统分别与所述ESB-API子系统及所述ESB-CONSUMER子系统通讯连接,所述ESB-API子系统与所述ESB-PROXY-IN子系统通讯连接,所述ESB-CONSUMER子系统分别与所述ESB-PROXY-OUT子系统及所述ESB-FILE-PROXY-OUT子系统通讯连接,其中,A first aspect of the present invention provides an enterprise service bus system, the enterprise service bus system communicates and connects multiple enterprise systems and multiple third-party systems, and the enterprise service bus system includes: ESB-API subsystem, KAFKA subsystem , ESB-CONSUMER subsystem, ESB-PROXY-IN subsystem, ESB-PROXY-OUT subsystem, ESB-FILE-PROXY-OUT subsystem, the KAFKA subsystem and the ESB-API subsystem and the The ESB-CONSUMER subsystem is communicatively connected, the ESB-API subsystem is communicatively connected to the ESB-PROXY-IN subsystem, and the ESB-CONSUMER subsystem is respectively connected to the ESB-PROXY-OUT subsystem and the ESB -FILE-PROXY-OUT subsystem communication connection, where,
所述ESB-API子系统用于发布dubbo服务协议,所述ESB-PROXY-IN子系统用于发布http服务协议和https服务协议;The ESB-API subsystem is used to publish the dubbo service agreement, and the ESB-PROXY-IN subsystem is used to publish the http service agreement and the https service agreement;
所述ESB-API子系统还用于将所述企业服务总线系统封装后的消息由所述ESB-API子系统中的消息生产者将消息发送至所述KAFKA子系统;The ESB-API subsystem is further configured to send the message encapsulated by the enterprise service bus system to the KAFKA subsystem by a message producer in the ESB-API subsystem;
所述KAFKA子系统用于接收到所述ESB-API子系统发送的待处理的消息时,根据所述待处理的消息配置相应的消息队列,并对所述待处理的消息进行处理;The KAFKA subsystem is configured to configure a corresponding message queue according to the to-be-processed message when receiving the to-be-processed message sent by the ESB-API subsystem, and to process the to-be-processed message;
所述ESB-CONSUMER子系统用于每隔预设时间段从所述KAFKA子系统的消息队列中拉取所述待处理的消息,根据所述待处理的消息创建相应的线程;The ESB-CONSUMER subsystem is used to pull the message to be processed from the message queue of the KAFKA subsystem every preset time period, and create a corresponding thread according to the message to be processed;
所述ESB-CONSUMER子系统用于对所述待处理的消息进行解析,并将解析后的内容发送至所述数据请求对应的服务方;The ESB-CONSUMER subsystem is used to parse the message to be processed, and send the parsed content to the server corresponding to the data request;
所述ESB-CONSUMER子系统还用于获取所述数据请求的服务方发送的请求结果并将所述请求结果暂存至所述KAFKA子系统的消息队列中;The ESB-CONSUMER subsystem is also used to obtain the request result sent by the server of the data request and temporarily store the request result in the message queue of the KAFKA subsystem;
所述ESB-API子系统还用于从所述KAFKA子系统的消息队列中获取所述请求结果,并将所述请求结果发送至所述数据请求的请求方。The ESB-API subsystem is further configured to obtain the request result from the message queue of the KAFKA subsystem, and send the request result to the requester of the data request.
本发明的第二方面提供一种利用所述的企业服务总线系统进行企业服务总线数据处理方法,所述方法包括:A second aspect of the present invention provides an enterprise service bus data processing method using the enterprise service bus system, the method comprising:
发布服务,供请求方调用,所述ESB-API子系统发布服务协议为dubbo协议,所述ESB-PROXY-IN子系统发布服务协议为http协议和https协议;Publishing service for the requester to call, the ESB-API subsystem publishing service protocol is the dubbo protocol, and the ESB-PROXY-IN subsystem publishing service protocol is the http protocol and the https protocol;
侦测是否接收到请求方的数据请求;Detect whether a data request from the requester is received;
当侦测到接收到请求方的数据请求后,识别所述数据请求的请求方是否合法;After detecting the data request received by the requester, identify whether the requester of the data request is legal;
当识别所述数据请求的请求方合法时,根据所述数据请求识别所述数据请求的服务方;When identifying the requesting party of the data request is legitimate, identifying the serving party of the data request according to the data request;
根据所述请求的服务方将所述数据请求封装成相应的消息,并将封装后的消息由所述ESB-API子系统中的消息生产者将消息发送至所述KAFKA子系统;According to the requesting server, the data request is encapsulated into a corresponding message, and the encapsulated message is sent to the KAFKA subsystem by the message producer in the ESB-API subsystem;
所述KAFKA子系统接收到所述ESB-API子系统发送的待处理的消息时,根据所述待处理的消息配置相应的消息队列,并对所述待处理的消息进行处理;When the KAFKA subsystem receives the to-be-processed message sent by the ESB-API subsystem, it configures a corresponding message queue according to the to-be-processed message, and processes the to-be-processed message;
每隔预设时间段所述ESB-CONSUMER子系统从所述KAFKA子系统的消息队列中拉取所述待处理的消息,根据所述待处理的消息创建相应的线程;Every preset time period, the ESB-CONSUMER subsystem pulls the message to be processed from the message queue of the KAFKA subsystem, and creates a corresponding thread according to the message to be processed;
所述ESB-CONSUMER子系统对所述待处理的消息进行解析,并将解析后的内容发送至所述数据请求对应的服务方;The ESB-CONSUMER subsystem parses the message to be processed, and sends the parsed content to the server corresponding to the data request;
所述ESB-CONSUMER子系统获取所述数据请求的服务方发送的请求结果并将所述请求结果暂存至所述KAFKA子系统的消息队列中;The ESB-CONSUMER subsystem obtains the request result sent by the server of the data request and temporarily stores the request result in the message queue of the KAFKA subsystem;
所述ESB-API子系统从所述KAFKA子系统的消息队列中获取所述请求结果,并将所述请求结果发送至所述数据请求的请求方。The ESB-API subsystem obtains the request result from the message queue of the KAFKA subsystem, and sends the request result to the requester of the data request.
优选地,所述请求方的数据请求为所述请求方根据企业服务系统所发布的服务协议对数据请求进行封装后的数据请求,包括:Preferably, the data request of the requesting party is a data request that the requesting party encapsulates the data request according to the service protocol published by the enterprise service system, including:
当所述请求方为所述企业系统时,根据所述dubbo协议对所述数据请求进行封装;When the requester is the enterprise system, encapsulate the data request according to the dubbo protocol;
当所述请求方为第三方系统时,根据所述http协议或者https协议对所述数据请求进行封装。When the requester is a third-party system, the data request is encapsulated according to the http protocol or the https protocol.
优选地,所述根据所述数据请求识别所述数据请求的服务方包括:Preferably, the identifying the service party of the data request according to the data request includes:
根据所述数据请求中携带的数据请求服务方标识识别所述数据请求的服务方;Identify the service party of the data request according to the data request service party identifier carried in the data request;
当识别所述数据请求服务方标识为第一标识时,确定所述数据请求服务方为企业系统;When the identification of the data requesting service party is identified as the first identification, it is determined that the data requesting service party is an enterprise system;
当识别所述数据请求服务方标识为第二标识时,确定所述数据请求服务方为第三方系统。When the identification of the data requesting service party is identified as the second identification, it is determined that the data requesting service party is a third-party system.
优选地,所述根据所述请求的服务方将所述数据请求封装成相应的消息,并将封装后的消息由所述ESB-API子系统中的消息生产者将消息发送至所述KAFKA子系统包括:Preferably, the service party according to the request encapsulates the data request into a corresponding message, and sends the encapsulated message to the KAFKA sub-system by a message producer in the ESB-API subsystem The system includes:
当所述数据请求的接收系统为所述ESB-API子系统时,将所述数据请求封装为消息,并将封装后的消息由所述ESB-API子系统中的消息生产者将消息发送至所述KAFKA子系统;When the receiving system of the data request is the ESB-API subsystem, the data request is encapsulated into a message, and the encapsulated message is sent by the message producer in the ESB-API subsystem to the KAFKA subsystem;
当所述数据请求的接收系统为所述ESB-PROXY-IN子系统时,将所述数据请求封装为消息,并通过所述ESB-PROXY-IN子系统转发至所述ESB-API子系统后,由所述ESB-API子系统中的消息生产者将消息发送至所述KAFKA子系统。When the receiving system of the data request is the ESB-PROXY-IN subsystem, the data request is encapsulated into a message and forwarded to the ESB-API subsystem through the ESB-PROXY-IN subsystem , the message producer in the ESB-API subsystem sends the message to the KAFKA subsystem.
优选地,所述根据所述待处理的消息创建相应的线程包括:根据所述服务方对应的所述请求并发数创建相应大小的线程池,所述请求并发数等于所述线程池的大小。Preferably, the creating a corresponding thread according to the to-be-processed message includes: creating a thread pool of a corresponding size according to the concurrent request number corresponding to the server, where the concurrent request number is equal to the size of the thread pool.
优选地,所述将解析后的内容发送至所述数据请求对应的服务方包括:当所述数据请求的服务方为所述第三方系统时,通过所述ESB-PROXY-OUT子系统或所述ESB-FILE-PROXY-OUT子系统将解析后的内容发送至所述数据请求的服务方;当所述数据请求的服务方为所述企业系统时,直接将将解析后的内容发送至所述企业系统。Preferably, the sending the parsed content to the service party corresponding to the data request includes: when the service party of the data request is the third-party system, using the ESB-PROXY-OUT subsystem or the third-party system The ESB-FILE-PROXY-OUT subsystem sends the parsed content to the service party of the data request; when the service party of the data request is the enterprise system, it directly sends the parsed content to the service party of the data request. Describe the enterprise system.
优选地,所述将所述请求结果发送至所述数据请求的请求方包括:当所述数据请求的请求方为所述企业系统时,所述ESB-API子系统直接将所述请求结果发送至所述企业系统;当所述数据请求的请求方为所述第三方系统时,所述ESB-API子系统通过所述ESB-PROXY-OUT子系统或所述ESB-FILE-PROXY-OUT子系统将所述请求结果发送至所述第三方系统。Preferably, the sending the request result to the requester of the data request includes: when the requester of the data request is the enterprise system, the ESB-API subsystem directly sends the request result to the enterprise system; when the requester of the data request is the third-party system, the ESB-API subsystem passes the ESB-PROXY-OUT subsystem or the ESB-FILE-PROXY-OUT sub-system The system sends the request result to the third-party system.
优选地,所述方法还包括:Preferably, the method further includes:
判断当前请求状态是否满足熔断条件;Determine whether the current request status satisfies the fuse condition;
当当前请求状态满足熔断条件时,配置第一数量的消息队列,并向当前接收到的数据请求的请求方返回预设信息;When the current request status satisfies the fuse condition, configure the first number of message queues, and return preset information to the requester of the currently received data request;
当当前请求状态不满足熔断条件时,配置第二数量的消息队列。When the current request state does not meet the circuit breaker condition, configure a second number of message queues.
优选地,所述熔断条件包括以下一种或多种的组合:Preferably, the fusing conditions include a combination of one or more of the following:
当前的数据请求的耗时时间超过预设耗时时间;或者The elapsed time of the current data request exceeds the preset elapsed time; or
预设时间段内的所有数据请求的耗时时间的平均值大于或者等于接口超过时间;或者The average time-consuming time of all data requests within the preset time period is greater than or equal to the interface timeout time; or
所述ESB-API子系统消息队列中的消息数量超过预设数量;或者The number of messages in the ESB-API subsystem message queue exceeds a preset number; or
接收到同一个数据请求的请求方的数据请求的数量超过预设数量。The number of data requests of the requester who received the same data request exceeds the preset number.
本发明的第三方面提供一种终端,所述终端包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的企业服务总线数据处理方法。A third aspect of the present invention provides a terminal, the terminal includes a processor and a memory, and the processor is configured to implement the enterprise service bus data processing method when executing a computer program stored in the memory.
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的企业服务总线数据处理方法。A fourth aspect of the present invention provides a computer-readable storage medium, where a computer program is stored thereon, and when the computer program is executed by a processor, the enterprise service bus data processing method is implemented.
综上所述,本发明实施例中所述的重模式企业服务总线系统、数据处理方法、终端及存储介质,采用开源框架dubbo的同步处理机制,并结合开源处理流平台KAFKA的异步处理机制,将同步处理机制转成异步处理机制,使得ESB不仅具有dubbo的均衡负载的特点,还兼具KAFKA的消息队列的缓冲功能,能够做到动态扩容和消息持久化:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失。其次,设置统一的报文格式,通过将不同的数据请求的请求方发送的数据请求转换成统一的报文和请求协议,能够屏蔽异构系统的底层技术差异,还便于数据请求的请求方的开发和管理。To sum up, the heavy-mode enterprise service bus system, data processing method, terminal, and storage medium described in the embodiments of the present invention adopt the synchronous processing mechanism of the open source framework dubbo, combined with the asynchronous processing mechanism of the open source processing stream platform KAFKA, The synchronous processing mechanism is converted into an asynchronous processing mechanism, so that ESB not only has the characteristics of dubbo's load balancing, but also has the buffering function of KAFKA's message queue, which can achieve dynamic expansion and message persistence: messages are persisted to the local disk, And support data backup to prevent data loss. Secondly, set a unified message format, by converting the data requests sent by the requesters of different data requests into a unified message and request protocol, it can shield the underlying technical differences of the heterogeneous systems, and also facilitate the requester of the data request. development and management.
附图说明Description of drawings
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。In order to explain the embodiments of the present invention or the technical solutions in the prior art more clearly, the following briefly introduces the accompanying drawings that need to be used in the description of the embodiments or the prior art. Obviously, the accompanying drawings in the following description are only It is an embodiment of the present invention. For those of ordinary skill in the art, other drawings can also be obtained according to the provided drawings without creative work.
图1是本发明实施例一提供的重模式企业服务总线系统的运行环境图。FIG. 1 is an operating environment diagram of a heavy-mode enterprise service bus system provided by Embodiment 1 of the present invention.
图2是本发明实施例二提供的重模式企业服务总线数据处理方法的流程图。FIG. 2 is a flowchart of a data processing method for a heavy-mode enterprise service bus provided by Embodiment 2 of the present invention.
图3是本发明实施例三提供的终端的示意图。FIG. 3 is a schematic diagram of a terminal according to
如下具体实施方式将结合上述附图进一步说明本发明。The following specific embodiments will further illustrate the present invention in conjunction with the above drawings.
具体实施方式Detailed ways
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。In order to more clearly understand the above objects, features and advantages of the present invention, the present invention will be described in detail below with reference to the accompanying drawings and specific embodiments. It should be noted that the embodiments of the present invention and the features in the embodiments may be combined with each other under the condition of no conflict.
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。In the following description, many specific details are set forth in order to facilitate a full understanding of the present invention, and the described embodiments are only some, but not all, embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present invention.
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. The terms used herein in the description of the present invention are for the purpose of describing specific embodiments only, and are not intended to limit the present invention.
实施例一Example 1
图1是本发明实施例一提供的重模式企业服务总线系统的运行环境图。FIG. 1 is an operating environment diagram of a heavy-mode enterprise service bus system provided by Embodiment 1 of the present invention.
本实施例中,企业系统200通过重模式企业服务总线系统100(EnterpriseService Bus,ESB,下文简称为ESB100)与第三方系统300进行通讯连接及数据交互。第三方系统300通过ESB100与企业系统200进行通讯连接及数据交互。In this embodiment, the
所述企业系统200可以包括多个企业内部应用或者企业内部文件服务,例如,企业应用1、企业应用2及企业应用3,不同的企业内部应用或者企业内部文件服务可以配置在不同的服务器上。The
所述第三方系统300可以包括多个第第三方应用或者第三方文件服务,例如,第三方应用1、第三方应用2、第三方应用3及三方文件服务,不同的第三方应用或者第三方文件服务可以配置在不同的服务器上。The third-
所述ESB100可以包括多个子系统,例如:ESB-API子系统(下文简称为ESB-API)101、KAFKA子系统(下文简称为KAFKA)102、ESB-CONSUMER子系统(下文简称为ESB-CONSUMER)103、ESB-PROXY-IN子系统(下文简称为ESB-PROXY-IN)104、ESB-PROXY-OUT子系统(下文简称为ESB-PROXY-OUT)105、ESB-FILE-PROXY-OUT子系统(下文简称为ESB-FILE-PROXY-OUT)106。其中,KAFKA102分别与ESB-API101及ESB-CONSUMER103通讯连接,ESB-API101与ESB-PROXY-IN104通讯连接,ESB-CONSUMER103分别与ESB-PROXY-OUT105及ESB-FILE-PROXY-OUT106通讯连接。ESB-PROXY-IN104可以称之为接入代理服务器。ESB-PROXY-OUT105及ESB-FILE-PROXY-OUT106可以称之为接出代理服务器。The
在其他实施例中,所述ESB100还可以包括ZOOKEEPER子系统107及NAS子系统108。In other embodiments, the
本实施例中,所述ESB100中的各子系统(例如,ESB-API10、ESB-PROXY-IN104、ESB-PROXY-OUT105、ESB-FILE-PROXY-OUT106)用于发布服务。发布服务为发布服务协议,所述服务协议可以包括:dubbo协议、http协议、https协议。In this embodiment, each subsystem (eg, ESB-API10, ESB-PROXY-IN104, ESB-PROXY-OUT105, ESB-FILE-PROXY-OUT106) in the
本实施例中,所述企业系统200、ESB100、第三方系统300可以为请求方,也可以为服务方。ESB100会为不同的所述企业系统200以及不同的所述第三方系统300建立唯一标识和请求并发数,例如为某一银行建立标识“B10047”,请求并发数为100。In this embodiment, the
本实施例中,所述ESB-API101发布服务协议为dubbo协议,服务名称格式为“esb-api.service.XXXXXX_YYYYYY”,所述接口名称中的“XXXXXX”为服务方(所述企业系统200或所述第三方系统300)的标识,所述接口名称中的“YYYYYY“为所述服务方提供的服务名称,所述ESB-API101发布服务供企业系统200和所述ESB-PROXY-IN104调用。In this embodiment, the ESB-API101 publishes the service protocol as the dubbo protocol, the service name format is "esb-api.service.XXXXXX_YYYYYY", and the "XXXXXX" in the interface name is the service party (the
本实施例中,所述ESB-PROXY-IN104发布服务协议为http协议和https协议,服务名称格式为“esb.YYYYYY”,所述接口名称中的“YYYYYY“为所述服务方(所述企业系统200或所述第三方系统300)提供的服务名称,所述ESB-PROXY-IN104发布服务供所述第三方系统300调用。在所述ESB-PROXY-IN104发布服务时会维护一张服务对应表,将所述ESB-PROXY-IN104发布的服务与所述ESB-API101发布的服务对应起来,例如所述ESB-PROXY-IN101发布的esb.customer.queryReferrerList服务与所述ESB-API101发布的esb-api.service.Fin004.ff.customer.queryReferrerList服务对应起来。In this embodiment, the ESB-PROXY-IN104 publishing service protocol is http protocol and https protocol, the service name format is "esb.YYYYYY", and "YYYYYY" in the interface name is the service party (the enterprise The service name provided by the
本实施例中,所述ESB-PROXY-OUT105、ESB-FILE-PROXY-OUT106发布服务协议为dubbo协议,服务名称格式为“esb-proxy.service.XXXXXX_YYYYYY”,所述接口名称中的“XXXXXX”为服务方(所述企业系统200或所述第三方系统300)的标识,所述接口名称中的“YYYYYY“为所述服务方提供的服务名称,所述ESB-PROXY-OUT105、ESB-FILE-PROXY-OUT106发布服务供所述ESB-API101调用。所述ESB-PROXY-OUT105、ESB-FILE-PROXY-OUT106发布的服务与所述ESB-API101发布的服务成对出现,例如所述ESB-PROXY-OUT105发布的esb-proxy.service.B10043.QueryGradingInterestIn this embodiment, the ESB-PROXY-OUT105 and ESB-FILE-PROXY-OUT106 publish service protocols are dubbo protocols, the service name format is "esb-proxy.service.XXXXXX_YYYYYY", and "XXXXXX" in the interface name is the identification of the service party (the
RateService服务与所述ESB-API101发布的esb-api.service.B10043.QueryGrad-ingInterestRateService服务成对出现。The RateService service is paired with the esb-api.service.B10043.QueryGrad-ingInterestRateService service published by the ESB-API101.
需要说明的是,ESB100作为请求方主要是相对ESB100内部的各子系统而言的,因为ESB100内部各子系统之间也存在调用关系。It should be noted that the ESB100 as a requester is mainly relative to each subsystem within the ESB100, because there is also a calling relationship between the subsystems within the ESB100.
例如:ESB100的ESB-PROXY-IN104给ESB100的其他子系统调用,同时ESB100的ESB-PROXY-IN104也会调用ESB100的ESB-API 101,这时ESB-PROXY-IN104相对于ESB-API101就是请求方。For example: ESB-PROXY-IN104 of ESB100 calls other subsystems of ESB100, and ESB-PROXY-IN104 of ESB100 also calls ESB-
所述ESB100还用于侦测是否接收到请求方的数据请求。The
请求方的数据请求为请求方根据ESB100所发布的服务对数据请求进行封装后的数据请求。The requester's data request is the data request after the requester encapsulates the data request according to the service published by the ESB100.
本实施例中,请求方根据所发布的服务对数据请求进行封装可以包括:In this embodiment, the encapsulation of the data request by the requester according to the published service may include:
1)当请求方为企业系统200时,根据所述ESB100的各子系统发布的dubbo协议对数据请求进行封装。1) When the requester is the
2)当请求方为第三方系统300时,根据所述ESB100的各子系统发布的http协议或者https协议对数据请求进行封装。2) When the requesting party is the third-
由请求方根据所述ESB100的各子系统发布的服务对数据请求进行封装,请求方只需要按照ESB100的统一请求报文格式进行封装就可以了,不需关注不同的服务方的请求报文格式不一样的问题。The requester encapsulates the data request according to the services published by the various subsystems of the ESB100. The requester only needs to encapsulate the data request according to the unified request message format of the ESB100, and does not need to pay attention to the request message formats of different service parties. different question.
举例说明,本实施例提供的统一请求报文格式如下所示:For example, the format of the unified request message provided by this embodiment is as follows:
所述ESB100还用于当侦测到接收到请求方的数据请求后,识别所述数据请求的请求方是否合法。The
本实施例中,ESB100接收到数据请求时,根据所述数据请求识别所述数据请求的请求方是否合法。所述合法是指请求方是否为ESB100所承认的合法的企业系统200或第三方系统300,所述企业系统200和所述第三方系统300是指ESB100对接的并为其建立了唯一标识的系统。In this embodiment, when the
本实施例中,所述数据请求中可以携带有数据请求来源标识,所述数据请求来源标识用以表明所述数据请求的请求方的身份。所述来源标识即ESB100为该系统建立的唯一标识。In this embodiment, the data request may carry a data request source identifier, and the data request source identifier is used to indicate the identity of the requester of the data request. The source identifier is the unique identifier established by ESB100 for the system.
所述ESB100还用于在识别所述数据请求的请求方不合法时,中断请求。The
所述ESB100还用于在识别所述数据请求的请求方时,根据所述数据请求识别所述数据请求的服务方。The
本实施例中,ESB在确定数据请求的请求方为合法的请求方时,根据所述数据请求识别所述数据请求的服务方,所述服务方可以为为企业系统200或第三方系统300。In this embodiment, when the ESB determines that the requesting party of the data request is a legitimate requesting party, it identifies the serving party of the data request according to the data request, and the serving party may be the
本实施例中,所述数据请求可以携带有数据请求服务方标识,所述数据请求服务方标识用以表明所述数据请求的服务方的身份。所述数据请求服务方标识包括:第一标识和第二标识,其中所述第一标识用以表明所述数据请求服务方为企业内部应用或者企业内部文件服务,所述第二标识用以表明所述数据请求服务方为第三方应用或者第三方文件服务。In this embodiment, the data request may carry a data request service party identifier, and the data request service party identifier is used to indicate the identity of the data request service party. The identification of the data requesting service party includes: a first identification and a second identification, wherein the first identification is used to indicate that the data requesting service party is an intra-enterprise application or an intra-enterprise file service, and the second identification is used to indicate that The data request service party is a third-party application or a third-party file service.
根据所述数据请求识别所述数据请求的服务方可以包括:根据所述数据请求中携带的数据请求服务方标识识别所述数据请求的服务方;当识别所述数据请求服务方标识为第一标识时,确定所述数据请求服务方为企业系统;当识别所述数据请求服务方标识为第二标识时,确定所述数据请求服务方为第三方系统。Identifying the service side of the data request according to the data request may include: identifying the service side of the data request according to the data request service side identifier carried in the data request; when identifying the data request service side identifier as the first When identifying the data requesting service party, it is determined that the data requesting service party is an enterprise system; when the data requesting service party is identified as the second identification, it is determined that the data requesting service party is a third-party system.
举例说明,本实施例中的所述数据请求服务方标识可以为所述ESB-API101、ESB-PROXY-OUT105、ESB-FILE-PROXY-OUT106所发布的服务名称中的“XXXXXX”部分。For example, the identifier of the data requesting service party in this embodiment may be the "XXXXXX" part of the service name published by the ESB-API101, ESB-PROXY-OUT105, and ESB-FILE-PROXY-OUT106.
所述ESB100还用于根据所述请求的服务方将所述数据请求封装成相应的消息,并将封装后的消息由ESB-API101中的消息生产者将消息发送至KAFKA102。The
本实施例中,ESB-API101为应用程序编程接口(Application ProgrammingInterface,API)预先定义的函数,是ESB100的服务入口及消息的生产者。In this embodiment, the ESB-
本实施例中,根据所述请求的服务方将所述数据请求封装成相应的消息,并将封装后的消息由ESB-API101中的消息生产者将消息发送至KAFKA102可以包括:In this embodiment, encapsulating the data request into a corresponding message according to the requesting server, and sending the encapsulated message to the
1)当所述数据请求的接收系统为所述ESB-API101时,将数据请求封装为消息,并将封装后的消息由ESB-API101中的消息生产者将消息发送至KAFKA102。1) When the receiving system of the data request is the ESB-
2)当所述数据请求的接收系统为ESB-PROXY-IN104时,将数据请求封装为消息,并通过第一代理服务器转发至ESB-API101后,由ESB-AP101I中的消息生产者将消息发送至KAFKA102。2) When the receiving system of the data request is ESB-PROXY-IN104, encapsulate the data request as a message, and after forwarding it to ESB-API101 through the first proxy server, the message producer in ESB-AP101I sends the message to KAFKA102.
消息封装后直接由ESB-API101中的消息生产者发送至KAFKA102的消息队列中,所述消息中携带有标识号,用以表明存储的消息队列的位置信息。例如,当标识号为A时,表明将所述消息存储于消息队列1中,当标识号为B时,表明将所述消息存储于消息队列2中。所述消息队列可以是KAFKA102的消息队列或者内存中的消息队列。After the message is encapsulated, it is directly sent by the message producer in ESB-API101 to the message queue of KAFKA102, and the message carries an identification number to indicate the location information of the stored message queue. For example, when the identification number is A, it indicates that the message is stored in message queue 1, and when the identification number is B, it indicates that the message is stored in message queue 2. The message queue may be a message queue of
所述ESB-PROXY-IN104还可以包括负载均衡功能(例如,图中所示的F5),对第三方系统300的数据请求进行负载均衡控制。防止高并发时对企业系统(例如,银行系统)造成压力导致瘫痪。The ESB-PROXY-
KAFKA102用于接收到ESB-API101发送的待处理的消息时,根据所述待处理的消息配置相应的消息队列,并对所述待处理的消息进行处理。When the
本实施例中,KAFKA102是一种高吞吐量的分布式发布订阅消息系统,为ESB100提供消息队列,可以处理消费者规模的网站中的所有动作流数据,KAFKA102具有高吞吐量、支持负载均衡、异步发送、消息持久化的特点。当KAFKA102侦测到ESB-API101发送的消息时,获取待处理的消息,配置相应的消息队列,并对所述待处理的消息进行处理。In this embodiment, KAFKA102 is a high-throughput distributed publish-subscribe messaging system that provides a message queue for ESB100 and can process all action flow data in consumer-scale websites. KAFKA102 has high throughput, supports load balancing, Features of asynchronous sending and message persistence. When
所述对待处理的消息进行处理可以包括:将所述待处理的消息进行分布式存储为多个副本;当待处理的消息的数量超过预设数量阈值时,将待处理的消息中的每一条消息进行切片或切块;对待处理的消息进行压缩处理。如此可确保待处理的消息不会丢失且重复消费的问题。The processing of the messages to be processed may include: distributed storage of the messages to be processed into multiple copies; when the number of the messages to be processed exceeds a preset number threshold, each of the messages to be processed is stored. Messages are sliced or diced; messages to be processed are compressed. This ensures that pending messages are not lost and re-consumed.
本实施例中,ESB100采用KAFKA102作为消息队列,具有高吞吐率和消息持久化的功能,能够很好地提升ESB100的处理能力,使得ESB100的处理能力是可控制的,当ESB100的服务性能较低时,可使用消息队列对信息进行缓冲,避免当机的情况发生。In this embodiment, ESB100 uses KAFKA102 as a message queue, which has the functions of high throughput and message persistence, which can well improve the processing capability of ESB100, making the processing capability of ESB100 controllable. When the service performance of ESB100 is low , you can use the message queue to buffer the information to avoid crashes.
所述ESB-CONSUMER103用于每隔预设时间段从KAFKA102的消息队列中拉取所述待处理的消息,根据所述待处理的消息创建相应的线程。The ESB-CONSUMER103 is configured to pull the to-be-processed message from the message queue of the
ESB-CONSUMER103可以每隔预设时间段(例如,200毫秒)监听KAFKA102中是否有消息要处理,当ESB-CONSUMER103监听到KAFKA102中有消息要处理时,从KAFKA102中拉取消息,并根据消息内容路由到对应的代理服务器。ESB-CONSUMER103 can monitor whether there are messages to be processed in KAFKA102 every preset time period (for example, 200 milliseconds). When ESB-CONSUMER103 detects that there are messages to be processed in KAFKA102, it pulls the messages from KAFKA102, and according to the message content Route to the corresponding proxy server.
ESB100会根据消息队列创建对应的线程池,一个消息队列对应一个线程池,每个线程池固定消费对应的消息队列中的待处理的消息,不同的线程池之间相互不干扰。例如,线程池1只负责消费消息队列1中的待处理的消息,线程池2只负责消费消息队列2中的待处理的消息。ESB100 will create corresponding thread pools based on message queues, one message queue corresponds to one thread pool, each thread pool consumes the pending messages in the corresponding message queue, and different thread pools do not interfere with each other. For example, thread pool 1 is only responsible for consuming pending messages in message queue 1, and thread pool 2 is only responsible for consuming pending messages in message queue 2.
本实施例中,所述根据所述待处理的消息创建相应的线程可以包括:根据所述服务方对应的所述请求并发数创建相应大小的线程池。所述请求并发数等于线程池的大小。In this embodiment, the creating a corresponding thread according to the to-be-processed message may include: creating a thread pool of a corresponding size according to the concurrent number of requests corresponding to the server. The number of concurrent requests is equal to the size of the thread pool.
根据所述服务方预先配置好的请求并发数来创建不同大小的线程池,从而实现根据不同的数据请求量执行不同的并发控制,比如,企业系统的数据请求量一般较少,所述服务方(第三方系统300)预先配置好的请求并发数也相应较低,因而ESB-CONSUMER103创建的线程池也较小,例如,20-50个;再如,第三方系统的数据请求量一般较多,所述服务方(企业系统200)预先配置好的请求并发数也相应较高,因而ESB-CONSUMER103创建的线程池较大,例如,100-150个。Thread pools of different sizes are created according to the number of concurrent requests pre-configured by the server, so as to implement different concurrency controls according to different data request volumes. For example, the data request volume of an enterprise system is generally small, and the server (Third-party system 300) The pre-configured number of concurrent requests is correspondingly low, so the thread pool created by ESB-CONSUMER103 is also small, for example, 20-50; for another example, the data request volume of the third-party system is generally large , the number of concurrent requests preconfigured by the server (enterprise system 200 ) is correspondingly high, so the thread pool created by ESB-CONSUMER103 is relatively large, for example, 100-150.
ESB-CONSUMER103对所述待处理的消息进行解析,并将解析后的内容发送至所述数据请求对应的服务方。ESB-CONSUMER103 parses the to-be-processed message, and sends the parsed content to the server corresponding to the data request.
本实施例中,ESB-CONSUMER103的线程可以预先配置有与所述待处理的消息相对应的配置表。所述配置表包括:完成数据请求所需要的系统服务名、系统服务物理路由、系统服务后续流程条件码、条件码对应后续服务等信息。对所述待处理的消息进行解析就是通过检索配置表,解释其中内容,以确定具体服务内容,并确定系统服务名、系统服务物理路由、后续流程条件码、条件码对应后续服务等。In this embodiment, the thread of the ESB-
本实施例中,所述服务方是指响应所述请求方的数据请求,并根据所述数据请求提供相应的请求结果的服务者,所述服务方可以包括:企业系统200或者第三方系统300。当然,若企业系统200包括多个企业子系统,例如,企业子系统1,企业子系统2。所述服务方还可以是多个企业子系统中的一个企业子系统。同理,若第三方系统300包括多个第三方子系统,例如,第三方子系统1,第三方子系统2。所述服务方还可以是多个第三方子系统中的一个第三方子系统。即,请求方和服务方可以同时为企业系统200,也可以同时为第三方系统300,如,当企业子系统1请求调用企业子系统2时,此时,企业子系统1为请求方,企业子系统2为服务方。In this embodiment, the service party refers to a service provider that responds to the data request of the requester and provides corresponding request results according to the data request. The service party may include: the
举例说明,本实施例中提供的服务方响应所述数据请求,即响应所述报文格式如下所示:For example, the service provider provided in this embodiment responds to the data request, that is, the format of the response message is as follows:
本实施例中,将解析后的内容发送至所述数据请求对应的服务方可以包括:In this embodiment, sending the parsed content to the server corresponding to the data request may include:
1)当所述数据请求的服务方为第三方系统300时,通过接出代理服务器将解析后的内容发送至所述数据请求的服务方(第三方系统)。1) When the service party of the data request is the third-
所述接出代理服务器接收到ESB-CONSUMER103的线程发送的解析后的内容时,转发所述解析后的内容至第三方系统300中。所述ESB-PROXY-OUT105用以接收ESB-CONSUMER103的消息,并根据所述消息按照第三方系统预设的请求方式请求第三方系统响应所述数据请求并返回请求结果。所述ESB-FILE-PROXY-OUT106用于接收ESB-CONSUMER103的消息,并根据所述消息按照第三方系统300预设的请求方式请求第三方系统300,上传或者下载所述数据请求中对应的文件。When the outgoing proxy server receives the parsed content sent by the thread of the ESB-
2)当所述数据请求的服务方为企业系统200时,直接将将解析后的内容发送至所述企业系统200。2) When the server of the data request is the
ESB-CONSUMER103获取所述数据请求的服务方发送的请求结果并将所述请求结果暂存至KAFKA102的消息队列中。ESB-CONSUMER103 obtains the request result sent by the server of the data request and temporarily stores the request result in the message queue of KAFKA102.
本实施例中,所述获取所述数据请求的服务方发送的请求结果可以包括:In this embodiment, the request result sent by the service party that obtains the data request may include:
1)当所述数据请求的服务方为第三方系统300时,通过所述接出代理服务器从所述第三方系统300中获取所述请求结果,并将所述请求结果暂存至KAFKA102的消息队列中。1) When the service party of the data request is the third-
2)当所述数据请求的服务方为企业系统200时,直接从所述企业系统中获取所述请求结果,并将所述请求结果暂存至KAFKA102的消息队列中。2) When the server of the data request is the
ESB-API101从所述KAFKA102的消息队列中获取所述请求结果,并将所述请求结果发送至所述数据请求的请求方。The ESB-
本实施例中,将所述请求结果发送至所述数据请求的请求方可以包括:In this embodiment, sending the request result to the requester of the data request may include:
1)当所述数据请求的请求方为企业系统200时,ESB-API101直接将所述请求结果发送至所述企业系统200。1) When the requester of the data request is the
2)当所述数据请求的请求方为第三方系统300时,ESB-API101通过所述接入代理服务器将所述请求结果发送至所述第三方系统300。2) When the requester of the data request is the third-
应当说明的是,无论是企业系统200还是第三方系统300,都既可以做数据请求的请求方,也可以做响应所述数据请求并提供请求结果的数据请求的服务方。即,企业系统200作为数据请求的请求方在向所数据请求的服务方(第三方系统300)发送数据请求的同时,也可以作为数据请求的服务方响应数据请求并为数据请求的请求方(第三方系统300)提供请求结果。第三方系统作为数据请求的请求方在向所数据请求的服务方(企业系统200)发送数据请求的同时,也可以作为数据请求的服务方响应数据请求并为数据请求的请求方(企业系统200)提供请求结果。It should be noted that both the
进一步地,当ESB100还用于接收到数据请求时,判断当前请求状态是否满足熔断条件;当当前请求状态满足熔断条件时,配置第一数量的消息队列,并向当前接收到的数据请求的请求方返回预设信息。当当前请求状态不满足熔断条件时,配置第二数量的消息队列。Further, when ESB100 is also used to receive a data request, determine whether the current request state satisfies the fuse condition; when the current request state satisfies the fuse condition, configure the first number of message queues, and send the request to the currently received data request. to return to the default information. When the current request state does not meet the circuit breaker condition, configure a second number of message queues.
ESB100可以统计每一个数据请求的耗时时间,所述数据请求的耗时时间是指ESB100从接收到数据请求的请求方发送的数据请求到向数据请求的请求方返回所述数据请求对应的请求结果的时间。ESB100 can count the time-consuming time of each data request. The time-consuming time of data request refers to the time from ESB100 receiving the data request sent by the requester of the data request to returning the request corresponding to the data request to the requester of the data request. result time.
所述当前请求状态可以包括以下一种或多种的组合:当前的数据请求的耗时时间;预设时间段内的所有数据请求的耗时时间的平均值;ESB-API消息队列中的消息数量;接收到同一个数据请求的请求方的数据请求的数量。The current request state may include one or more of the following combinations: the time-consuming time of the current data request; the average value of the time-consuming time of all data requests within a preset time period; the messages in the ESB-API message queue Quantity; the number of data requests from the requester that received the same data request.
所述熔断条件可以包括以下一种或多种的组合:当前的数据请求的耗时时间超过预设耗时时间;预设时间段内的所有数据请求的耗时时间的平均值大于或者等于接口超过时间;ESB-API101消息队列中的消息数量超过预设数量;接收到同一个数据请求的请求方的数据请求的数量超过预设数量。The fusing condition may include one or more of the following combinations: the time-consuming time of the current data request exceeds the preset time-consuming time; the average time-consuming time of all data requests within the preset time period is greater than or equal to the interface Exceeded time; the number of messages in the ESB-API101 message queue exceeds the preset number; the number of data requests from the requester receiving the same data request exceeds the preset number.
所述预设耗时时间为预先定义的一个时间值。所述预设信息可以是“系统业务繁忙,请稍后再试”。所述第一数量值等于线程池的大小值,所述第二数量值等于线程池的大小值乘以接口超时时间值与平均耗时时间值的比值。The preset time-consuming time is a predefined time value. The preset information may be "the system is busy with business, please try again later". The first quantity value is equal to the size value of the thread pool, and the second quantity value is equal to the size value of the thread pool multiplied by the ratio of the interface timeout value and the average time-consuming time value.
本实施例中,通过预先设置熔断条件,当侦测到满足所述熔断条件时,可使得瞬时高并发超过ESB100处理能力时,例如,ESB-API101消息队列中的消息数量超过预设数量时,KAFKA102及ESB-CONSUMER103来不及处理数据请求,或者当第三方系统300大量异常或者请求超时时,能够自动对当前的数据请求进行熔断控制,增加消息在消息队列中的等待时间,起到缓冲消息的作用,减少ESB100的压力,同时还能及时向当前的数据请求的请求方返回预设信息,做到了及时响应,提高了数据请求的请求方的体验度。In this embodiment, by presetting the fusing condition, when it is detected that the fusing condition is satisfied, the instantaneous high concurrency can exceed the processing capability of the ESB100, for example, when the number of messages in the ESB-API101 message queue exceeds the preset number, KAFKA102 and ESB-CONSUMER103 are too late to process data requests, or when a large number of third-
进一步的,所述ESB100还可以用于配置可视化管理工具,用以存储消息及响应数据请求。所述可视化管理工具可以包括:mongo dB、mongo booster、admin Mongo。Further, the
进一步的,所述ESB100还可以用于提供分布式应用程序协调服务,用于为KAFKA和dubbo提供注册中心。所述分布式应用程序协调服务可以是ZooKeeper组件。Further, the
综上所述,本发明实施例中所述的重模式企业服务总线系统,采用开源框架dubbo的同步处理机制,并结合开源处理流平台KAFKA的异步处理机制,将同步处理机制转成异步处理机制,使得ESB不仅具有dubbo的均衡负载的特点,还兼具KAFKA的消息队列的缓冲功能,能够做到动态扩容和消息持久化:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失。其次,设置统一的报文格式,通过将不同的数据请求的请求方发送的数据请求转换成统一的报文和请求协议,能够屏蔽异构系统的底层技术差异,还便于数据请求的请求方的开发和管理。另外,根据消息队列中的待处理的消息创建相应的线程,并配置线程池的大小,有效的防止了高并发时数据请求的服务方造成的压力导致了数据请求的服务方系统的瘫痪。且,生产者和消费者独立部署,一个生产者可以配置多个消费者对待处理的消息进行消费。最后,设置熔断条件,在瞬时高并发超过ESB处理能力时或者当第三方系统大量异常或者请求超时时,能够自动对当前的数据请求进行熔断控制,增加消息在消息队列中的等待时间,起到缓冲消息的作用,减少ESB的压力,同时还能及时向当前的数据请求的请求方返回预设信息,做到了及时响应,提高了数据请求的请求方的体验度。To sum up, the heavy-mode enterprise service bus system described in the embodiment of the present invention adopts the synchronous processing mechanism of the open source framework dubbo, and combines the asynchronous processing mechanism of the open source processing stream platform KAFKA to convert the synchronous processing mechanism into an asynchronous processing mechanism , so that ESB not only has the characteristics of dubbo's load balancing, but also has the buffering function of KAFKA's message queue, which can achieve dynamic expansion and message persistence: messages are persisted to local disks, and data backup is supported to prevent data loss. Secondly, set a unified message format, by converting the data requests sent by the requesters of different data requests into a unified message and request protocol, it can shield the underlying technical differences of the heterogeneous systems, and also facilitate the requester of the data request. development and management. In addition, the corresponding threads are created according to the pending messages in the message queue, and the size of the thread pool is configured, which effectively prevents the pressure caused by the data request server when high concurrency occurs, which leads to the paralysis of the data request server system. Moreover, producers and consumers are deployed independently, and a producer can configure multiple consumers to consume messages to be processed. Finally, set the fuse condition, when the instantaneous high concurrency exceeds the ESB processing capacity or when a large number of exceptions in the third-party system or the request times out, the current data request can be automatically blown and controlled, and the waiting time of the message in the message queue can be increased. The function of buffering messages reduces the pressure on the ESB, and at the same time, it can return preset information to the requester of the current data request in time, so as to achieve a timely response and improve the experience of the requester of the data request.
实施例二Embodiment 2
图2是本发明实施例二提供的企业服务总线的数据处理方法的流程图。根据不同的需求,该流程图中的执行顺序可以改变,某些步骤可以省略。FIG. 2 is a flowchart of a data processing method for an enterprise service bus provided by Embodiment 2 of the present invention. According to different requirements, the execution order in this flowchart can be changed, and some steps can be omitted.
本发明实施例的企业服务总线的数据处理方法可以应用在一个或者多个终端中。所述企业服务总线的数据处理方法也可以应用于由终端和通过网络与所述终端进行连接的服务器所构成的硬件环境中。网络包括但不限于:广域网、城域网或局域网。本发明实施例的企业服务总线的数据处理方法可以由服务器来执行,也可以由终端来执行;还可以是由服务器和终端共同执行。The data processing method of the enterprise service bus according to the embodiment of the present invention may be applied to one or more terminals. The data processing method of the enterprise service bus can also be applied to a hardware environment composed of a terminal and a server connected to the terminal through a network. The network includes, but is not limited to: a wide area network, a metropolitan area network or a local area network. The data processing method of the enterprise service bus according to the embodiment of the present invention may be executed by a server or a terminal; and may also be executed jointly by a server and a terminal.
所述对于需要进行企业服务总线的数据处理方法的终端,可以直接在终端上集成本发明的方法所提供的企业服务总线的数据处理功能,或者安装用于实现本发明的方法的客户端。再如,本发明所提供的方法还可以以软件开发工具包(Software DevelopmentKit,SDK)的形式运行在服务器等设备上,以SDK的形式提供企业服务总线架构功能的接口,终端或其他设备通过提供的接口即可实现对企业服务总线的数据处理。For the terminal that needs to perform the data processing method of the enterprise service bus, the data processing function of the enterprise service bus provided by the method of the present invention may be directly integrated on the terminal, or a client for implementing the method of the present invention may be installed. For another example, the method provided by the present invention can also be run on a server and other equipment in the form of a software development kit (Software Development Kit, SDK), and the interface of the enterprise service bus architecture function is provided in the form of an SDK. The interface can realize the data processing of the enterprise service bus.
S11、发布服务,供请求方调用。S11. Publish the service for the requester to call.
本实施例中,可以由ESB中的各子系统发布服务,ESB中的各子系统包括:ESB-API、ESB-PROXY-IN、ESB-PROXY-OUT、ESB-FILE-PROXY-OUT,发布服务为发布服务协议,所述服务协议可以包括:dubbo协议、http协议、https协议。In this embodiment, the service can be published by each subsystem in the ESB, and each subsystem in the ESB includes: ESB-API, ESB-PROXY-IN, ESB-PROXY-OUT, ESB-FILE-PROXY-OUT, and publishes the service In order to publish the service protocol, the service protocol may include: dubbo protocol, http protocol, https protocol.
本实施例中,所述请求方可以为企业系统、ESB、第三方系统。所述企业系统可以包括多个企业内部应用或者企业内部文件服务,不同的企业内部应用或者企业内部文件服务可以配置在不同的服务器上。所述ESB可以为本方案中所述ESB中的各子系统。所述第三方系统可以包括多个第第三方应用或者第三方文件服务,不同的第三方应用或者第三方文件服务可以配置在不同的服务器上。ESB会为不同的所述企业系统以及不同的所述第三方系统建立唯一标识和请求请求并发数,例如为某一银行建立标识“B10047”,请求并发数为100。In this embodiment, the requesting party may be an enterprise system, an ESB, or a third-party system. The enterprise system may include multiple intra-enterprise applications or intra-enterprise file services, and different intra-enterprise applications or intra-enterprise file services may be configured on different servers. The ESB can be each subsystem in the ESB in this solution. The third-party system may include multiple third-party applications or third-party file services, and different third-party applications or third-party file services may be configured on different servers. The ESB will establish unique identifiers and request concurrent numbers for different enterprise systems and different third-party systems. For example, an identifier "B10047" is established for a certain bank, and the number of concurrent requests is 100.
本实施例中,所述ESB-API发布服务协议为dubbo协议,服务名称格式为“esb-api.service.XXXXXX_YYYYYY”,所述接口名称中的“XXXXXX”为服务方(所述企业系统或所述第三方系统)的标识,所述接口名称中的“YYYYYY“为所述服务方提供的服务名称,所述ESB-API发布服务供企业系统和所述ESB-PROXY-IN调用。In this embodiment, the ESB-API publishing service protocol is the dubbo protocol, the service name format is "esb-api.service.XXXXXX_YYYYYY", and "XXXXXX" in the interface name is the service party (the enterprise system or the The identifier of the third-party system), the "YYYYYY" in the interface name is the service name provided by the service party, and the ESB-API publishes the service for the enterprise system and the ESB-PROXY-IN to call.
本实施例中,所述ESB-PROXY-IN发布服务协议为http协议和https协议,服务名称格式为“esb.YYYYYY”,所述接口名称中的“YYYYYY“为所述服务方(所述企业系统或所述第三方系统)提供的服务名称,所述ESB-PROXY-IN发布服务供所述第三方系统调用。在所述ESB-PROXY-IN发布服务时会维护一张服务对应表,将所述ESB-PROXY-IN发布的服务与所述ESB-API发布的服务对应起来,例如所述ESB-PROXY-IN发布的esb.customer.queryReferrerList服务与所述ESB-API发布的esb-api.service.Fin004.ff.customer.queryReferrerList服务对应起来。In this embodiment, the ESB-PROXY-IN publishing service protocol is http protocol and https protocol, the service name format is "esb.YYYYYY", and "YYYYYY" in the interface name is the service party (the enterprise The service name provided by the system or the third-party system), the ESB-PROXY-IN publishes the service for the third-party system to call. When the ESB-PROXY-IN publishes a service, a service correspondence table is maintained, and the service published by the ESB-PROXY-IN corresponds to the service published by the ESB-API, for example, the ESB-PROXY-IN The published esb.customer.queryReferrerList service corresponds to the esb-api.service.Fin004.ff.customer.queryReferrerList service published by the ESB-API.
本实施例中,所述ESB-PROXY-OUT、ESB-FILE-PROXY-OUT发布服务协议为dubbo协议,服务名称格式为“esb-proxy.service.XXXXXX_YYYYYY”,所述接口名称中的“XXXXXX”为服务方(所述企业系统或所述第三方系统)的标识,所述接口名称中的“YYYYYY“为所述服务方提供的服务名称,所述ESB-PROXY-OUT、ESB-FILE-PROXY-OUT发布服务供所述ESB-API调用。所述ESB-PROXY-OUT、ESB-FILE-PROXY-OUT发布的服务与所述ESB-API发布的服务成对出现,例如所述ESB-PROXY-OUT发布的esb-proxy.service.B10043.QueryGradingInterestRateService服务与所述ESB-API发布的esb-api.service.B10043.QueryGradingInterestRateService服务成对出现。In this embodiment, the ESB-PROXY-OUT, ESB-FILE-PROXY-OUT publishing service protocol is the dubbo protocol, the service name format is "esb-proxy.service.XXXXXX_YYYYYY", and "XXXXXX" in the interface name is the identification of the service party (the enterprise system or the third-party system), "YYYYYY" in the interface name is the service name provided by the service party, the ESB-PROXY-OUT, ESB-FILE-PROXY -OUT publishes services for the ESB-API to call. The services published by the ESB-PROXY-OUT and ESB-FILE-PROXY-OUT appear in pairs with the services published by the ESB-API, for example, esb-proxy.service.B10043.QueryGradingInterestRateService published by the ESB-PROXY-OUT The service is paired with the esb-api.service.B10043.QueryGradingInterestRateService service published by the ESB-API.
需要说明的是,ESB作为请求方主要是相对ESB内部的各子系统而言的,因为ESB内部各子系统之间也存在调用关系。It should be noted that the ESB as a requester is mainly relative to each subsystem within the ESB, because there is also a calling relationship between the subsystems within the ESB.
例如:ESB的ESB-PROXY-IN子系统给ESB的其他子系统调用,同时ESB的ESB-PROXY-IN子系统也会调用ESB的ESB-API子系统,这时ESB-PROXY-IN子系统相对于ESB-API子系统就是请求方。For example, the ESB-PROXY-IN subsystem of the ESB calls other subsystems of the ESB, and the ESB-PROXY-IN subsystem of the ESB also calls the ESB-API subsystem of the ESB. At this time, the ESB-PROXY-IN subsystem is relatively The ESB-API subsystem is the requester.
S12、侦测是否接收到请求方的数据请求。S12. Detect whether a data request from the requester is received.
请求方的数据请求为请求方根据ESB所发布的服务对数据请求进行封装后的数据请求。The requester's data request is a data request after the requester encapsulates the data request according to the service published by the ESB.
本实施例中,请求方根据所发布的服务对数据请求进行封装可以包括:In this embodiment, the encapsulation of the data request by the requester according to the published service may include:
1)当请求方为企业系统时,根据所述ESB的各子系统发布的dubbo协议对数据请求进行封装。1) When the requester is an enterprise system, the data request is encapsulated according to the dubbo protocol issued by each subsystem of the ESB.
2)当请求方为第三方系统时,根据所述ESB的各子系统发布的http协议或者https协议对数据请求进行封装。2) When the requester is a third-party system, the data request is encapsulated according to the http protocol or https protocol issued by each subsystem of the ESB.
由请求方根据所述ESB的各子系统发布的服务对数据请求进行封装,请求方只需要按照ESB的统一请求报文格式进行封装就可以了,不需关注不同的服务方的请求报文格式不一样的问题。The requester encapsulates the data request according to the services published by the various subsystems of the ESB. The requester only needs to encapsulate the data request according to the unified request message format of the ESB, and does not need to pay attention to the request message formats of different service parties. different question.
举例说明,本实施例提供的统一请求报文格式如下所示:For example, the format of the unified request message provided by this embodiment is as follows:
当侦测到接收到请求方的数据请求后,执行步骤S13;否则,可以继续侦测是否接收到请求方的数据请求。When it is detected that the data request of the requester is received, step S13 is performed; otherwise, it is possible to continue to detect whether the data request of the requester is received.
S13、识别所述数据请求的请求方是否合法。S13. Identify whether the requester of the data request is legal.
本实施例中,ESB接收到数据请求时,根据所述数据请求识别所述数据请求的请求方是否合法。所述合法是指请求方是否为ESB所承认的合法的企业系统或第三方系统,所述企业系统和所述第三方系统是指ESB对接的并为其建立了唯一标识的系统。若请求方不合法则中断请求,请求方合法则进行后续流程S14。In this embodiment, when the ESB receives the data request, it identifies whether the requester of the data request is legal according to the data request. The legality refers to whether the requesting party is a legal enterprise system or a third-party system recognized by the ESB, and the enterprise system and the third-party system refer to the systems that the ESB connects to and establishes a unique identifier for it. If the requester is illegal, the request is interrupted, and if the requester is legal, the subsequent process S14 is performed.
本实施例中,所述数据请求中可以携带有数据请求来源标识,所述数据请求来源标识用以表明所述数据请求的请求方的身份。所述来源标识即ESB为该系统建立的唯一标识。In this embodiment, the data request may carry a data request source identifier, and the data request source identifier is used to indicate the identity of the requester of the data request. The source identifier is the unique identifier established by the ESB for the system.
S14、根据所述数据请求识别所述数据请求的服务方。S14. Identify the service party of the data request according to the data request.
本实施例中,ESB在确定数据请求的请求方为合法的请求方时,根据所述数据请求识别所述数据请求的服务方,所述服务方可以为为企业系统或第三方系统。所述企业系统可以包括多个企业内部应用或者企业内部文件服务,不同的企业内部应用或者企业内部文件服务可以配置在不同的服务器上。所述第三方系统可以包括多个第三方应用或者第三方文件服务,不同的第三方应用或者第三方文件服务可以配置在不同的服务器上。In this embodiment, when the ESB determines that the requesting party of the data request is a legitimate requesting party, it identifies the serving party of the data request according to the data request, and the serving party may be an enterprise system or a third-party system. The enterprise system may include multiple intra-enterprise applications or intra-enterprise file services, and different intra-enterprise applications or intra-enterprise file services may be configured on different servers. The third-party system may include multiple third-party applications or third-party file services, and different third-party applications or third-party file services may be configured on different servers.
本实施例中,所述数据请求可以携带有数据请求服务方标识,所述数据请求服务方标识用以表明所述数据请求的服务方的身份。所述数据请求服务方标识包括:第一标识和第二标识,其中所述第一标识用以表明所述数据请求服务方为企业内部应用或者企业内部文件服务,所述第二标识用以表明所述数据请求服务方为第三方应用或者第三方文件服务。In this embodiment, the data request may carry a data request service party identifier, and the data request service party identifier is used to indicate the identity of the data request service party. The identification of the data requesting service party includes: a first identification and a second identification, wherein the first identification is used to indicate that the data requesting service party is an intra-enterprise application or an intra-enterprise file service, and the second identification is used to indicate that The data request service party is a third-party application or a third-party file service.
根据所述数据请求识别所述数据请求的服务方可以包括:根据所述数据请求中携带的数据请求服务方标识识别所述数据请求的服务方;当识别所述数据请求服务方标识为第一标识时,确定所述数据请求服务方为企业系统;当识别所述数据请求服务方标识为第二标识时,确定所述数据请求服务方为第三方系统。Identifying the service side of the data request according to the data request may include: identifying the service side of the data request according to the data request service side identifier carried in the data request; when identifying the data request service side identifier as the first When identifying the data requesting service party, it is determined that the data requesting service party is an enterprise system; when the data requesting service party is identified as the second identification, it is determined that the data requesting service party is a third-party system.
举例说明,本实施例中的所述数据请求服务方标识可以为所述ESB-API、ESB-PROXY-OUT、ESB-FILE-PROXY-OUT所发布的服务名称中的“XXXXXX”部分。For example, the identifier of the data requesting service party in this embodiment may be the "XXXXXX" part of the service name published by the ESB-API, ESB-PROXY-OUT, and ESB-FILE-PROXY-OUT.
S15、根据所述请求的服务方将所述数据请求封装成相应的消息,并将封装后的消息由ESB-API中的消息生产者将消息发送至KAFKA。S15 , according to the requesting server, encapsulate the data request into a corresponding message, and send the encapsulated message to KAFKA by the message producer in the ESB-API.
本实施例中,应用程序编程接口(Application Programming Interface,API)为预先定义的函数,是ESB的服务入口及消息的生产者。In this embodiment, an application programming interface (Application Programming Interface, API) is a predefined function, and is a service entry of the ESB and a message producer.
本实施例中,根据所述请求的服务方将所述数据请求封装成相应的消息,并将封装后的消息由ESB-API中的消息生产者将消息发送至KAFKA可以包括:In this embodiment, encapsulating the data request into a corresponding message according to the requesting server, and sending the encapsulated message to KAFKA by the message producer in the ESB-API may include:
1)当所述数据请求的接收系统为所述ESB-API时,将数据请求封装为消息,并将封装后的消息由ESB-API中的消息生产者将消息发送至KAFKA。1) When the receiving system of the data request is the ESB-API, the data request is encapsulated into a message, and the encapsulated message is sent to KAFKA by the message producer in the ESB-API.
2)当所述数据请求的接收系统为第一代理服务器时,将数据请求封装为消息,并通过第一代理服务器转发至ESB-API后,由ESB-API中的消息生产者将消息发送至KAFKA。2) When the receiving system of the data request is the first proxy server, the data request is encapsulated as a message, and after being forwarded to the ESB-API through the first proxy server, the message producer in the ESB-API sends the message to KAFKA.
消息封装后直接由ESB-API中的消息生产者发送至KAFKA的消息队列中,所述消息中携带有标识号,用以表明存储的消息队列的位置信息。例如,当标识号为A时,表明将所述消息存储于消息队列1中,当标识号为B时,表明将所述消息存储于消息队列2中。所述消息队列可以是KAFKA的消息队列或者内存中的消息队列。After the message is encapsulated, it is directly sent by the message producer in the ESB-API to the message queue of KAFKA, and the message carries an identification number to indicate the location information of the stored message queue. For example, when the identification number is A, it indicates that the message is stored in message queue 1, and when the identification number is B, it indicates that the message is stored in message queue 2. The message queue may be a KAFKA message queue or an in-memory message queue.
所述第一代理服务器可以为接入代理服务器(ESB-PROXY-IN)。The first proxy server may be an access proxy server (ESB-PROXY-IN).
所述第一代理服务器还可以包括负载均衡功能(例如,图中所示的F5),对第三方系统的数据请求进行负载均衡控制。防止高并发时对企业系统(例如,银行系统)造成压力导致瘫痪。The first proxy server may further include a load balancing function (for example, F5 shown in the figure) to perform load balancing control on the data request of the third-party system. Prevents paralysis due to stress on enterprise systems (eg, banking systems) when high concurrency occurs.
S16、KAFKA接收到ESB-API发送的待处理的消息时,根据所述待处理的消息配置相应的消息队列,并对所述待处理的消息进行处理。S16. When KAFKA receives the message to be processed sent by the ESB-API, it configures a corresponding message queue according to the message to be processed, and processes the message to be processed.
本实施例中,KAFKA是一种高吞吐量的分布式发布订阅消息系统,为ESB提供消息队列,可以处理消费者规模的网站中的所有动作流数据,KAFKA具有高吞吐量、支持负载均衡、异步发送、消息持久化的特点。当KAFKA侦测到ESB-API发送的消息时,获取待处理的消息,配置相应的消息队列,并对所述待处理的消息进行处理。In this embodiment, KAFKA is a high-throughput distributed publish-subscribe messaging system that provides a message queue for ESB and can process all action flow data in consumer-scale websites. KAFKA has high throughput, supports load balancing, Features of asynchronous sending and message persistence. When KAFKA detects a message sent by ESB-API, it obtains the message to be processed, configures a corresponding message queue, and processes the message to be processed.
所述对待处理的消息进行处理可以包括:将所述待处理的消息进行分布式存储为多个副本;当待处理的消息的数量超过预设数量阈值时,将待处理的消息中的每一条消息进行切片或切块;对待处理的消息进行压缩处理。如此可确保待处理的消息不会丢失且重复消费的问题。The processing of the messages to be processed may include: distributed storage of the messages to be processed into multiple copies; when the number of the messages to be processed exceeds a preset number threshold, each of the messages to be processed is stored. Messages are sliced or diced; messages to be processed are compressed. This ensures that pending messages are not lost and re-consumed.
本实施例中,ESB采用KAFKA作为消息队列,具有高吞吐率和消息持久化的功能,能够很好地提升ESB的处理能力,使得ESB的处理能力是可控制的,当ESB的服务性能较低时,可使用消息队列对信息进行缓冲,避免当机的情况发生。In this embodiment, the ESB uses KAFKA as the message queue, which has the functions of high throughput and message persistence, which can well improve the processing capability of the ESB, making the processing capability of the ESB controllable. When the service performance of the ESB is low , you can use the message queue to buffer the information to avoid crashes.
S17、每隔预设时间段ESB-CONSUMER从KAFKA的消息队列中拉取所述待处理的消息,根据所述待处理的消息创建相应的线程。S17. The ESB-CONSUMER pulls the to-be-processed message from the KAFKA message queue every preset time period, and creates a corresponding thread according to the to-be-processed message.
ESB-CONSUMER可以每隔预设时间段(例如,200毫秒)监听KAFKA中是否有消息要处理,当ESB-CONSUMER监听到KAFKA中有消息要处理时,从KAFKA中拉取消息,并根据消息内容路由到对应的代理服务器。ESB-CONSUMER can monitor whether there are messages to be processed in KAFKA every preset time period (for example, 200 milliseconds). Route to the corresponding proxy server.
ESB会根据消息队列创建对应的线程池,一个消息队列对应一个线程池,每个线程池固定消费对应的消息队列中的待处理的消息,不同的线程池之间相互不干扰。例如,线程池1只负责消费消息队列1中的待处理的消息,线程池2只负责消费消息队列2中的待处理的消息。The ESB will create a corresponding thread pool according to the message queue. One message queue corresponds to a thread pool. Each thread pool consumes the messages to be processed in the corresponding message queue. Different thread pools do not interfere with each other. For example, thread pool 1 is only responsible for consuming pending messages in message queue 1, and thread pool 2 is only responsible for consuming pending messages in message queue 2.
本实施例中,所述根据所述待处理的消息创建相应的线程可以包括:根据所述服务方对应的所述请求并发数创建相应大小的线程池。所述请求并发数等于线程池的大小。In this embodiment, the creating a corresponding thread according to the to-be-processed message may include: creating a thread pool of a corresponding size according to the concurrent number of requests corresponding to the server. The number of concurrent requests is equal to the size of the thread pool.
根据所述服务方预先配置好的请求并发数来创建不同大小的线程池,从而实现根据不同的数据请求量执行不同的并发控制,比如,企业系统的数据请求量一般较少,所述服务方(第三方系统)预先配置好的请求并发数也相应较低,因而ESB-CONSUMER创建的线程池也较小,例如,20-50个;再如,第三方系统的数据请求量一般较多,所述服务方(企业系统)预先配置好的请求并发数也相应较高,因而ESB-CONSUMER创建的线程池较大,例如,100-150个。Thread pools of different sizes are created according to the number of concurrent requests pre-configured by the server, so as to implement different concurrency controls according to different data request volumes. For example, the data request volume of an enterprise system is generally small, and the server (Third-party system) The pre-configured number of concurrent requests is correspondingly low, so the thread pool created by ESB-CONSUMER is also small, for example, 20-50; The number of concurrent requests pre-configured by the server (enterprise system) is also relatively high, so the thread pool created by ESB-CONSUMER is relatively large, for example, 100-150.
S18、ESB-CONSUMER对所述待处理的消息进行解析,并将解析后的内容发送至所述数据请求对应的服务方。S18. The ESB-CONSUMER parses the to-be-processed message, and sends the parsed content to the server corresponding to the data request.
本实施例中,ESB-CONSUMER的线程可以预先配置有与所述待处理的消息相对应的配置表。所述配置表包括:完成数据请求所需要的系统服务名、系统服务物理路由、系统服务后续流程条件码、条件码对应后续服务等信息。对所述待处理的消息进行解析就是通过检索配置表,解释其中内容,以确定具体服务内容,并确定系统服务名、系统服务物理路由、后续流程条件码、条件码对应后续服务等。In this embodiment, the thread of the ESB-CONSUMER may be pre-configured with a configuration table corresponding to the message to be processed. The configuration table includes: the system service name required to complete the data request, the system service physical route, the system service follow-up process condition code, the condition code corresponding to the follow-up service and other information. Parsing the to-be-processed message is to retrieve the configuration table and interpret the content to determine the specific service content, and to determine the system service name, system service physical route, subsequent process condition codes, and subsequent services corresponding to the condition codes.
本实施例中,所述服务方是指响应所述请求方的数据请求,并根据所述数据请求提供相应的请求结果的服务者,所述服务方可以包括:企业系统或者第三方系统。当然,若企业系统包括多个企业子系统,例如,企业子系统1,企业子系统2。所述服务方还可以是多个企业子系统中的一个企业子系统。同理,若第三方系统包括多个第三方子系统,例如,第三方子系统1,第三方子系统2。所述服务方还可以是多个第三方子系统中的一个第三方子系统。即,请求方和服务方可以同时为企业系统,也可以同时为第三方系统,如,当企业子系统1请求调用企业子系统2时,此时,企业子系统1为请求方,企业子系统2为服务方。In this embodiment, the service party refers to a service provider that responds to a data request of the requester and provides a corresponding request result according to the data request, and the service party may include an enterprise system or a third-party system. Of course, if the enterprise system includes multiple enterprise subsystems, for example, enterprise subsystem 1, enterprise subsystem 2. The service party may also be one enterprise subsystem among multiple enterprise subsystems. Similarly, if the third-party system includes multiple third-party subsystems, for example, third-party subsystem 1 and third-party subsystem 2 . The serving party may also be a third-party subsystem among multiple third-party subsystems. That is, the requester and the server can be both enterprise systems and third-party systems. For example, when enterprise subsystem 1 requests to call enterprise subsystem 2, at this time, enterprise subsystem 1 is the requester, and enterprise subsystem 1 is the requester. 2 is the server.
举例说明,本实施例中提供的服务方响应所述数据请求,即响应所述报文格式如下所示:For example, the service provider provided in this embodiment responds to the data request, that is, the format of the response message is as follows:
本实施例中,将解析后的内容发送至所述数据请求对应的服务方可以包括:In this embodiment, sending the parsed content to the server corresponding to the data request may include:
1)当所述数据请求的服务方为第三方系统时,通过第二代理服务器将解析后的内容发送至所述数据请求的服务方(第三方系统)。1) When the service party of the data request is a third-party system, the parsed content is sent to the service party (third-party system) of the data request through the second proxy server.
所述第二代理服务器可以为接出代理服务器(服务适配器ESB-PROXY-OUT或者服务文件适配器ESB-FILE-PROXY-OUT),所述第二代理服务器接收到ESB-CONSUMER的线程发送的解析后的内容时,转发所述解析后的内容至第三方系统中。所述ESB-PROXY-OUT用以接收ESB-CONSUMER的消息,并根据所述消息按照第三方系统预设的请求方式请求第三方系统响应所述数据请求并返回请求结果。所述ESB-FILE-PROXY-OUT用于接收ESB-CONSUMER的消息,并根据所述消息按照第三方系统预设的请求方式请求第三方系统,上传或者下载所述数据请求中对应的文件。The second proxy server may be an outgoing proxy server (service adapter ESB-PROXY-OUT or service file adapter ESB-FILE-PROXY-OUT), and the second proxy server receives the parsing sent by the thread of ESB-CONSUMER. When the content is parsed, the parsed content is forwarded to the third-party system. The ESB-PROXY-OUT is used to receive the message of the ESB-CONSUMER, and request the third-party system to respond to the data request and return the request result according to the message according to the request mode preset by the third-party system. The ESB-FILE-PROXY-OUT is used to receive the message of the ESB-CONSUMER, and according to the message, request the third-party system according to the request mode preset by the third-party system, and upload or download the corresponding file in the data request.
2)当所述数据请求的服务方为企业系统时,直接将将解析后的内容发送至所述企业系统。2) When the server of the data request is an enterprise system, directly send the parsed content to the enterprise system.
S19、ESB-CONSUMER获取所述数据请求的服务方发送的请求结果并将所述请求结果暂存至KAFKA的消息队列中。S19. The ESB-CONSUMER acquires the request result sent by the server of the data request and temporarily stores the request result in the message queue of KAFKA.
本实施例中,所述获取所述数据请求的服务方发送的请求结果可以包括:In this embodiment, the request result sent by the service party that obtains the data request may include:
1)当所述数据请求的服务方为第三方系统时,通过所述第二代理服务器从所述第三方系统中获取所述请求结果,并将所述请求结果暂存至KAFKA的消息队列中。1) When the service party of the data request is a third-party system, obtain the request result from the third-party system through the second proxy server, and temporarily store the request result in the message queue of KAFKA .
2)当所述数据请求的服务方为企业系统时,直接从所述企业系统中获取所述请求结果,并将所述请求结果暂存至KAFKA的消息队列中。2) When the server of the data request is an enterprise system, the request result is directly obtained from the enterprise system, and the request result is temporarily stored in the message queue of KAFKA.
S20、ESB-API从所述KAFKA的消息队列中获取所述请求结果,并将所述请求结果发送至所述数据请求的请求方。S20. The ESB-API obtains the request result from the KAFKA message queue, and sends the request result to the requester of the data request.
本实施例中,将所述请求结果发送至所述数据请求的请求方可以包括:In this embodiment, sending the request result to the requester of the data request may include:
1)当所述数据请求的请求方为企业系统时,ESB-API直接将所述请求结果发送至所述企业系统。1) When the requester of the data request is an enterprise system, the ESB-API directly sends the request result to the enterprise system.
2)当所述数据请求的请求方为第三方系统时,ESB-API通过所述第一代理服务器将所述请求结果发送至所述第三方系统。2) When the requester of the data request is a third-party system, the ESB-API sends the request result to the third-party system through the first proxy server.
应当说明的是,无论是企业系统还是第三方系统,都既可以做数据请求的请求方,也可以做响应所述数据请求并提供请求结果的数据请求的服务方。即,企业系统作为数据请求的请求方在向所数据请求的服务方(第三方系统)发送数据请求的同时,也可以作为数据请求的服务方响应数据请求并为数据请求的请求方(第三方系统)提供请求结果。第三方系统作为数据请求的请求方在向所数据请求的服务方(企业系统)发送数据请求的同时,也可以作为数据请求的服务方响应数据请求并为数据请求的请求方(企业系统)提供请求结果。It should be noted that, whether it is an enterprise system or a third-party system, both can be the requester of the data request, and can also be the server of the data request that responds to the data request and provides the request result. That is, when the enterprise system as the requester of the data request sends the data request to the servicer (third-party system) of the data request, it can also respond to the data request as the servicer of the data request and be the requester of the data request (the third-party system). system) to provide the request result. As the requester of the data request, the third-party system can also respond to the data request as the server of the data request and provide the requester (enterprise system) request result.
进一步地,当接收到数据请求时,所述方法还可以包括:判断当前请求状态是否满足熔断条件;当当前请求状态满足熔断条件时,配置第一数量的消息队列,并向当前接收到的数据请求的请求方返回预设信息。当当前请求状态不满足熔断条件时,配置第二数量的消息队列。Further, when a data request is received, the method may further include: judging whether the current request state satisfies the fuse condition; when the current request state satisfies the fuse condition, configuring a first number of message queues, and sending a message to the currently received data The requester of the request returns preset information. When the current request state does not meet the circuit breaker condition, configure a second number of message queues.
ESB可以统计每一个数据请求的耗时时间,所述数据请求的耗时时间是指ESB从接收到数据请求的请求方发送的数据请求到向数据请求的请求方返回所述数据请求对应的请求结果的时间。The ESB can count the time-consuming time of each data request. The time-consuming time of the data request refers to the time from the data request sent by the requester receiving the data request to the request corresponding to the data request being returned to the requester of the data request by the ESB. result time.
所述当前请求状态可以包括以下一种或多种的组合:当前的数据请求的耗时时间;预设时间段内的所有数据请求的耗时时间的平均值;ESB-API消息队列中的消息数量;接收到同一个数据请求的请求方的数据请求的数量。The current request state may include one or more of the following combinations: the time-consuming time of the current data request; the average value of the time-consuming time of all data requests within a preset time period; the messages in the ESB-API message queue Quantity; the number of data requests from the requester that received the same data request.
所述熔断条件可以包括以下一种或多种的组合:当前的数据请求的耗时时间超过预设耗时时间;预设时间段内的所有数据请求的耗时时间的平均值大于或者等于接口超过时间;ESB-API消息队列中的消息数量超过预设数量;接收到同一个数据请求的请求方的数据请求的数量超过预设数量。The fusing condition may include one or more of the following combinations: the time-consuming time of the current data request exceeds the preset time-consuming time; the average time-consuming time of all data requests within the preset time period is greater than or equal to the interface Exceeded time; the number of messages in the ESB-API message queue exceeds the preset number; the number of data requests from the requester that receives the same data request exceeds the preset number.
所述预设耗时时间为预先定义的一个时间值。所述预设信息可以是“系统业务繁忙,请稍后再试”。所述第一数量值等于线程池的大小值,所述第二数量值等于线程池的大小值乘以接口超时时间值与平均耗时时间值的比值。The preset time-consuming time is a predefined time value. The preset information may be "the system is busy with business, please try again later". The first quantity value is equal to the size value of the thread pool, and the second quantity value is equal to the size value of the thread pool multiplied by the ratio of the interface timeout value and the average time-consuming time value.
本实施例中,通过预先设置熔断条件,当侦测到满足所述熔断条件时,可使得瞬时高并发超过ESB处理能力时,例如,ESB-API消息队列中的消息数量超过预设数量时,KAFKA及ESB-CONSUMER来不及处理数据请求,或者当第三方系统大量异常或者请求超时时,能够自动对当前的数据请求进行熔断控制,增加消息在消息队列中的等待时间,起到缓冲消息的作用,减少ESB的压力,同时还能及时向当前的数据请求的请求方返回预设信息,做到了及时响应,提高了数据请求的请求方的体验度。In this embodiment, by presetting the fusing condition, when it is detected that the fusing condition is satisfied, the instantaneous high concurrency can exceed the processing capability of the ESB, for example, when the number of messages in the ESB-API message queue exceeds the preset number, KAFKA and ESB-CONSUMER are too late to process data requests, or when a large number of third-party systems are abnormal or the request times out, they can automatically fuse the current data request, increase the waiting time of the message in the message queue, and play the role of buffering the message. It reduces the pressure on the ESB, and at the same time, it can return preset information to the requester of the current data request in time, so as to achieve a timely response and improve the experience of the requester of the data request.
进一步的,所述方法还可以包括:配置可视化管理工具,用以存储消息及响应数据请求。所述可视化管理工具可以包括:mongo dB、mongo booster、admin Mongo。Further, the method may further include: configuring a visual management tool to store messages and respond to data requests. The visual management tools may include: mongo dB, mongo booster, and admin Mongo.
进一步的,所述方法还可以包括:提供分布式应用程序协调服务,用于为KAFKA和dubbo提供注册中心。所述分布式应用程序协调服务可以是ZooKeeper组件。Further, the method may further include: providing a distributed application coordination service for providing a registry for KAFKA and dubbo. The distributed application coordination service may be a ZooKeeper component.
综上所述,本发明实施例中所述的重模式企业服务总线数据处理方法,采用开源框架dubbo的同步处理机制,并结合开源处理流平台KAFKA的异步处理机制,将同步处理机制转成异步处理机制,使得ESB不仅具有dubbo的均衡负载的特点,还兼具KAFKA的消息队列的缓冲功能,能够做到动态扩容和消息持久化:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失。其次,设置统一的报文格式,通过将不同的数据请求的请求方发送的数据请求转换成统一的报文和请求协议,能够屏蔽异构系统的底层技术差异,还便于数据请求的请求方的开发和管理。另外,根据消息队列中的待处理的消息创建相应的线程,并配置线程池的大小,有效的防止了高并发时数据请求的服务方造成的压力导致了数据请求的服务方系统的瘫痪。且,生产者和消费者独立部署,一个生产者可以配置多个消费者对待处理的消息进行消费。最后,设置熔断条件,在瞬时高并发超过ESB处理能力时或者当第三方系统大量异常或者请求超时时,能够自动对当前的数据请求进行熔断控制,增加消息在消息队列中的等待时间,起到缓冲消息的作用,减少ESB的压力,同时还能及时向当前的数据请求的请求方返回预设信息,做到了及时响应,提高了数据请求的请求方的体验度。To sum up, the heavy-mode enterprise service bus data processing method described in the embodiment of the present invention adopts the synchronous processing mechanism of the open source framework dubbo, and combines the asynchronous processing mechanism of the open source processing stream platform KAFKA to convert the synchronous processing mechanism into an asynchronous processing mechanism. The processing mechanism makes ESB not only has the characteristics of dubbo's load balancing, but also has the buffering function of KAFKA's message queue, which can achieve dynamic expansion and message persistence: messages are persisted to local disks, and data backup is supported to prevent data loss. . Secondly, set a unified message format, by converting the data requests sent by the requesters of different data requests into a unified message and request protocol, it can shield the underlying technical differences of the heterogeneous systems, and also facilitate the requester of the data request. development and management. In addition, the corresponding threads are created according to the pending messages in the message queue, and the size of the thread pool is configured, which effectively prevents the pressure caused by the data request server when high concurrency occurs, which leads to the paralysis of the data request server system. Moreover, producers and consumers are deployed independently, and a producer can configure multiple consumers to consume messages to be processed. Finally, set the fuse condition, when the instantaneous high concurrency exceeds the ESB processing capacity or when a large number of exceptions in the third-party system or the request times out, the current data request can be automatically blown and controlled, and the waiting time of the message in the message queue can be increased. The function of buffering messages reduces the pressure on the ESB, and at the same time, it can return preset information to the requester of the current data request in time, so as to achieve a timely response and improve the experience of the requester of the data request.
以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。The above are only specific embodiments of the present invention, but the protection scope of the present invention is not limited to this. improvements, but these all belong to the protection scope of the present invention.
实施例三
图3为本发明实施例五提供的终端的示意图。FIG. 3 is a schematic diagram of a terminal according to Embodiment 5 of the present invention.
所述终端3包括:存储器31、至少一个处理器32、存储在所述存储器31中并可在所述至少一个处理器32上运行的计算机程序33及至少一条通讯总线34。The
所述至少一个处理器32执行所述计算机程序33时实现上述企业服务总线数据处理方法实施例中的步骤。When the at least one
示例性的,所述计算机程序33可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器31中,并由所述至少一个处理器32执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序33在所述终端3中的执行过程。Exemplarily, the
所述终端3可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解,所述示意图3仅仅是终端3的示例,并不构成对终端3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端3还可以包括输入输出设备、网络接入设备、总线等。The
所述至少一个处理器32可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。该处理器32可以是微处理器或者该处理器32也可以是任何常规的处理器等,所述处理器32是所述终端3的控制中心,利用各种接口和线路连接整个终端3的各个部分。The at least one
所述存储器31可用于存储所述计算机程序33和/或模块/单元,所述处理器32通过运行或执行存储在所述存储器31内的计算机程序和/或模块/单元,以及调用存储在存储器31内的数据,实现所述终端3的各种功能。所述存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端3的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器31可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。The
所述终端3集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。If the modules/units integrated in the
在本发明所提供的几个实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。In the several embodiments provided by the present invention, it should be understood that the disclosed terminal and method may be implemented in other manners. For example, the terminal embodiments described above are only illustrative. For example, the division of the units is only a logical function division, and there may be other division manners in actual implementation.
另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。In addition, each functional unit in each embodiment of the present invention may be integrated in the same processing unit, or each unit may exist physically alone, or two or more units may be integrated in the same unit. The above-mentioned integrated units can be implemented in the form of hardware, or can be implemented in the form of hardware plus software function modules.
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。It will be apparent to those skilled in the art that the present invention is not limited to the details of the above-described exemplary embodiments, but that the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics of the invention. Therefore, the embodiments are to be regarded in all respects as illustrative and not restrictive, and the scope of the invention is to be defined by the appended claims rather than the foregoing description, which are therefore intended to fall within the scope of the claims. All changes within the meaning and range of the equivalents of , are included in the present invention. Any reference signs in the claims shall not be construed as limiting the involved claim. Furthermore, it is clear that the word "comprising" does not exclude other units or, and the singular does not exclude the plural. Several units or means recited in the system claims can also be realized by one unit or means by means of software or hardware. The terms first, second, etc. are used to denote names and do not denote any particular order.
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神范围。Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention and not to limit them. Although the present invention has been described in detail with reference to the preferred embodiments, those of ordinary skill in the art should understand that the technical solutions of the present invention can be Modifications or equivalent substitutions can be made without departing from the spirit and scope of the technical solutions of the present invention.
Claims (10)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810928884.5A CN109271259B (en) | 2018-08-15 | 2018-08-15 | Enterprise service bus system, data processing method, terminal and storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810928884.5A CN109271259B (en) | 2018-08-15 | 2018-08-15 | Enterprise service bus system, data processing method, terminal and storage medium |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN109271259A CN109271259A (en) | 2019-01-25 |
| CN109271259B true CN109271259B (en) | 2022-10-21 |
Family
ID=65153432
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201810928884.5A Expired - Fee Related CN109271259B (en) | 2018-08-15 | 2018-08-15 | Enterprise service bus system, data processing method, terminal and storage medium |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN109271259B (en) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111756782B (en) * | 2019-03-28 | 2023-03-14 | 比亚迪股份有限公司 | Message transmission system and method based on heterogeneous operating system and vehicle |
| CN114860464A (en) * | 2021-01-20 | 2022-08-05 | 北京字跳网络技术有限公司 | Calling method and device of API (application program interface), electronic equipment and storage medium |
| CN113067885B (en) * | 2021-03-31 | 2024-02-27 | 中国建设银行股份有限公司 | Application system, request processing method, electronic device and storage medium |
| CN115396533A (en) * | 2022-08-25 | 2022-11-25 | 深圳市雁联计算系统有限公司 | Data processing method and service system for integrating multiple communication protocols |
| CN116962547B (en) * | 2023-08-29 | 2024-08-16 | 宁波鑫义信息科技有限公司 | MQ-based dynamic data gateway communication method |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104468299A (en) * | 2013-09-16 | 2015-03-25 | 清华大学 | Enterprise service bus system based on user rule |
| CN106385439A (en) * | 2016-08-31 | 2017-02-08 | 中车青岛四方机车车辆股份有限公司 | Method and device for connecting information system to enterprise service bus (ESB) |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8364745B2 (en) * | 2009-11-24 | 2013-01-29 | International Business Machines Corporation | Service oriented architecture enterprise service bus with universal ports |
| US8856800B2 (en) * | 2010-05-21 | 2014-10-07 | Red Hat, Inc. | Service-level enterprise service bus load balancing |
| US8805938B2 (en) * | 2010-06-04 | 2014-08-12 | Xiben New Line Stock Co., Ltd. | Enterprise service bus and message processing method thereof |
-
2018
- 2018-08-15 CN CN201810928884.5A patent/CN109271259B/en not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104468299A (en) * | 2013-09-16 | 2015-03-25 | 清华大学 | Enterprise service bus system based on user rule |
| CN106385439A (en) * | 2016-08-31 | 2017-02-08 | 中车青岛四方机车车辆股份有限公司 | Method and device for connecting information system to enterprise service bus (ESB) |
Non-Patent Citations (1)
| Title |
|---|
| Dubbo高级篇_01_消息中间件在分布式架构的作用和介绍;有恒则成;《https://blog.csdn.net/hardworking0323/article/details/51001333》;20160328;第1-3页 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN109271259A (en) | 2019-01-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109271259B (en) | Enterprise service bus system, data processing method, terminal and storage medium | |
| CN109271265B (en) | Request processing method, device, equipment and storage medium based on message queue | |
| CN112084042B (en) | Message processing method and device | |
| CN110895468B (en) | Method and device for realizing service enhancement | |
| US10084731B2 (en) | Method and system for transferring messages between messaging systems | |
| CN111866157B (en) | Cloud service gateway and cloud service internal and external request format conversion method | |
| CN113742389A (en) | Service processing method and device | |
| CN111586140A (en) | Data interaction method and server | |
| CN114979295B (en) | Gateway management method and device | |
| CN113965628B (en) | Message scheduling method, server and storage medium | |
| CN112104679B (en) | Method, apparatus, device and medium for processing hypertext transfer protocol request | |
| CN113794652A (en) | Data processing method and device, electronic equipment and storage medium | |
| CN111200606A (en) | Deep learning model task processing method, system, server and storage medium | |
| CN114756390A (en) | Message queue consumption method and system, electronic device and readable medium, product | |
| CN114189893B (en) | O-RAN capability opening method, communication system, device and storage medium | |
| CN113765871A (en) | Fortress management method and device | |
| CN110147285A (en) | Message treatment method and device based on message queue | |
| WO2023093200A1 (en) | Method and apparatus for asynchronously processing tasks, and storage medium and electronic apparatus | |
| CN113472687B (en) | Data processing method and device | |
| CN115131144A (en) | Information processing method and device for transaction business system | |
| CN107249019A (en) | Data handling system, method, device and server based on business | |
| CN117041147B (en) | Intelligent network card equipment, host equipment, method and system | |
| CN116708557A (en) | Resource allocation method and device, electronic equipment and readable storage medium | |
| HK1260961B (en) | Enterprise service bus system, data processing method, terminal and storage medium | |
| HK1260961A1 (en) | Enterprise service bus system, data processing method, terminal and storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1260961 Country of ref document: HK |
|
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20221021 |
|
| CF01 | Termination of patent right due to non-payment of annual fee |