[go: up one dir, main page]

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 PDF

Info

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
Application number
CN201810928884.5A
Other languages
Chinese (zh)
Other versions
CN109271259A (en
Inventor
张学
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OneConnect Financial Technology Co Ltd Shanghai
Original Assignee
OneConnect Financial Technology Co Ltd Shanghai
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by OneConnect Financial Technology Co Ltd Shanghai filed Critical OneConnect Financial Technology Co Ltd Shanghai
Priority to CN201810928884.5A priority Critical patent/CN109271259B/en
Publication of CN109271259A publication Critical patent/CN109271259A/en
Application granted granted Critical
Publication of CN109271259B publication Critical patent/CN109271259B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message 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

An enterprise service bus system for communicatively coupling an enterprise system to a third party system, comprising: ESB-API, KAFKA, ESB-CONSUMER, ESB-PROXY-IN, ESB-PROXY-OUT and ESB-FILE-PROXY-OUT subsystems, wherein KAFKA is IN communication connection with ESB-API and ESB-CONSUMER, ESB-API is IN communication connection with ESB-PROXY-IN, ESB-CONSUMER is IN communication connection with ESB-PROXY-OUT and ESB-FILE-PROXY-OUT subsystems. The invention also provides an enterprise service bus data processing method, a terminal and a storage medium. The invention can convert the data requests sent by different requesters into uniform messages and request protocols, realizes the function of a synchronous-to-asynchronous processing mechanism and improves the data processing speed.

Description

企业服务总线系统、数据处理方法、终端及存储介质Enterprise service bus system, data processing method, terminal and storage medium

技术领域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 Embodiment 3 of the present invention.

如下具体实施方式将结合上述附图进一步说明本发明。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 enterprise system 200 performs communication connection and data interaction with the third-party system 300 through a heavy-mode enterprise service bus system 100 (Enterprise Service Bus, ESB, hereinafter referred to as ESB 100 ). The third-party system 300 performs communication connection and data exchange with the enterprise system 200 through the ESB 100 .

所述企业系统200可以包括多个企业内部应用或者企业内部文件服务,例如,企业应用1、企业应用2及企业应用3,不同的企业内部应用或者企业内部文件服务可以配置在不同的服务器上。The enterprise system 200 may include multiple enterprise internal applications or enterprise internal file services, for example, enterprise application 1, enterprise application 2 and enterprise application 3, and different enterprise internal applications or enterprise internal file services may be configured on different servers.

所述第三方系统300可以包括多个第第三方应用或者第三方文件服务,例如,第三方应用1、第三方应用2、第三方应用3及三方文件服务,不同的第三方应用或者第三方文件服务可以配置在不同的服务器上。The third-party system 300 may include multiple third-party applications or third-party file services, for example, third-party application 1, third-party application 2, third-party application 3, and third-party file services, different third-party applications or third-party files. Services can be configured on different servers.

所述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 ESB 100 may include multiple subsystems, for example: ESB-API subsystem (hereinafter referred to as ESB-API) 101, KAFKA subsystem (hereinafter referred to as KAFKA) 102, ESB-CONSUMER subsystem (hereinafter referred to as ESB-CONSUMER) 103. ESB-PROXY-IN subsystem (hereinafter referred to as ESB-PROXY-IN) 104, ESB-PROXY-OUT subsystem (hereinafter referred to as ESB-PROXY-OUT) 105, ESB-FILE-PROXY-OUT subsystem ( Hereinafter referred to simply as ESB-FILE-PROXY-OUT) 106 . Among them, KAFKA102 communicates with ESB-API101 and ESB-CONSUMER103 respectively, ESB-API101 communicates with ESB-PROXY-IN104, and ESB-CONSUMER103 communicates with ESB-PROXY-OUT105 and ESB-FILE-PROXY-OUT106 respectively. ESB-PROXY-IN104 can be called access proxy server. ESB-PROXY-OUT105 and ESB-FILE-PROXY-OUT106 can be called outgoing proxy servers.

在其他实施例中,所述ESB100还可以包括ZOOKEEPER子系统107及NAS子系统108。In other embodiments, the ESB 100 may further include a ZOOKEEPER subsystem 107 and a NAS subsystem 108 .

本实施例中,所述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 ESB 100 is used for publishing services. The publishing service is a publishing service protocol, and the service protocol may include: a dubbo protocol, an http protocol, and an https protocol.

本实施例中,所述企业系统200、ESB100、第三方系统300可以为请求方,也可以为服务方。ESB100会为不同的所述企业系统200以及不同的所述第三方系统300建立唯一标识和请求并发数,例如为某一银行建立标识“B10047”,请求并发数为100。In this embodiment, the enterprise system 200 , the ESB 100 , and the third-party system 300 may be a requester or a service party. The ESB 100 will establish unique identifiers and request concurrency numbers for different enterprise systems 200 and different third-party systems 300 , for example, create an identifier "B10047" for a certain bank, and the request concurrency number is 100.

本实施例中,所述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 enterprise system 200 or The identifier of the third-party system 300), "YYYYYY" in the interface name is the service name provided by the service party, and the ESB-API 101 publishes the service for the enterprise system 200 and the ESB-PROXY-IN 104 to call.

本实施例中,所述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 system 200 or the third-party system 300), the ESB-PROXY-IN104 publishes the service for the third-party system 300 to call. When the ESB-PROXY-IN104 publishes a service, a service correspondence table will be maintained to correspond the service published by the ESB-PROXY-IN104 with the service published by the ESB-API101, for example, the ESB-PROXY-IN101 The published esb.customer.queryReferrerList service corresponds to the esb-api.service.Fin004.ff.customer.queryReferrerList service published by the ESB-API101.

本实施例中,所述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 enterprise system 200 or the third-party system 300), "YYYYYY" in the interface name is the service name provided by the service party, the ESB-PROXY-OUT105, ESB-FILE - PROXY-OUT 106 publishes services for the ESB-API 101 to call. The services published by the ESB-PROXY-OUT105 and ESB-FILE-PROXY-OUT106 appear in pairs with the services published by the ESB-API101, for example, esb-proxy.service.B10043.QueryGradingInterest published by the ESB-PROXY-OUT105

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-API 101 of ESB100. At this time, ESB-PROXY-IN104 is the requester relative to ESB-API101 .

所述ESB100还用于侦测是否接收到请求方的数据请求。The ESB 100 is also used to detect whether a data request from a requester is received.

请求方的数据请求为请求方根据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 enterprise system 200, the data request is encapsulated according to the dubbo protocol issued by each subsystem of the ESB 100.

2)当请求方为第三方系统300时,根据所述ESB100的各子系统发布的http协议或者https协议对数据请求进行封装。2) When the requesting party is the third-party system 300, the data request is encapsulated according to the http protocol or https protocol issued by each subsystem of the ESB 100.

由请求方根据所述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:

Figure BDA0001766041040000071
Figure BDA0001766041040000071

所述ESB100还用于当侦测到接收到请求方的数据请求后,识别所述数据请求的请求方是否合法。The ESB 100 is further configured to identify whether the requester of the data request is legal after detecting that the data request of the requester is received.

本实施例中,ESB100接收到数据请求时,根据所述数据请求识别所述数据请求的请求方是否合法。所述合法是指请求方是否为ESB100所承认的合法的企业系统200或第三方系统300,所述企业系统200和所述第三方系统300是指ESB100对接的并为其建立了唯一标识的系统。In this embodiment, when the ESB 100 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 200 or a third-party system 300 recognized by ESB 100, and the enterprise system 200 and the third-party system 300 refer to the systems that ESB 100 is docked with and has established a unique identifier for. .

本实施例中,所述数据请求中可以携带有数据请求来源标识,所述数据请求来源标识用以表明所述数据请求的请求方的身份。所述来源标识即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 ESB 100 is further configured to interrupt the request when identifying that the requester of the data request is illegal.

所述ESB100还用于在识别所述数据请求的请求方时,根据所述数据请求识别所述数据请求的服务方。The ESB 100 is further configured to, when identifying the requesting party of the data request, identify the serving party of the data request according to the data request.

本实施例中,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 enterprise system 200 or the third-party system 300 .

本实施例中,所述数据请求可以携带有数据请求服务方标识,所述数据请求服务方标识用以表明所述数据请求的服务方的身份。所述数据请求服务方标识包括:第一标识和第二标识,其中所述第一标识用以表明所述数据请求服务方为企业内部应用或者企业内部文件服务,所述第二标识用以表明所述数据请求服务方为第三方应用或者第三方文件服务。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 100 is further configured to encapsulate the data request into a corresponding message according to the service side of the request, and send the encapsulated message to the KAFKA 102 by the message producer in the ESB-API 101 .

本实施例中,ESB-API101为应用程序编程接口(Application ProgrammingInterface,API)预先定义的函数,是ESB100的服务入口及消息的生产者。In this embodiment, the ESB-API 101 is a function predefined by an application programming interface (Application Programming Interface, API), and is a service entry of the ESB 100 and a message producer.

本实施例中,根据所述请求的服务方将所述数据请求封装成相应的消息,并将封装后的消息由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 KAFKA 102 by the message producer in the ESB-API 101 may include:

1)当所述数据请求的接收系统为所述ESB-API101时,将数据请求封装为消息,并将封装后的消息由ESB-API101中的消息生产者将消息发送至KAFKA102。1) When the receiving system of the data request is the ESB-API 101, the data request is encapsulated into a message, and the encapsulated message is sent to the KAFKA 102 by the message producer in the ESB-API 101.

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 KAFKA 102 or a message queue in memory.

所述ESB-PROXY-IN104还可以包括负载均衡功能(例如,图中所示的F5),对第三方系统300的数据请求进行负载均衡控制。防止高并发时对企业系统(例如,银行系统)造成压力导致瘫痪。The ESB-PROXY-IN 104 may also 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 300 . Prevents paralysis due to stress on enterprise systems (eg, banking systems) when high concurrency occurs.

KAFKA102用于接收到ESB-API101发送的待处理的消息时,根据所述待处理的消息配置相应的消息队列,并对所述待处理的消息进行处理。When the KAFKA 102 receives a message to be processed sent by the ESB-API 101, configure a corresponding message queue according to the message to be processed, and process the message to be processed.

本实施例中,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 KAFKA 102 detects a message sent by ESB-API 101, it acquires 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.

本实施例中,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 KAFKA 102 every preset time period, and create a corresponding thread according to the to-be-processed message.

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-CONSUMER 103 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.

本实施例中,所述服务方是指响应所述请求方的数据请求,并根据所述数据请求提供相应的请求结果的服务者,所述服务方可以包括:企业系统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 enterprise system 200 or the third-party system 300 . Of course, if the enterprise system 200 includes a plurality of 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 300 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 service party can be both the enterprise system 200 and the third-party system 300 at the same time. For example, when the enterprise subsystem 1 requests to call the enterprise subsystem 2, at this time, the enterprise subsystem 1 is the requester and the enterprise Subsystem 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:

Figure BDA0001766041040000101
Figure BDA0001766041040000101

本实施例中,将解析后的内容发送至所述数据请求对应的服务方可以包括: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-party system 300, the parsed content is sent to the service party (third-party system) of the data request through the outgoing proxy server.

所述接出代理服务器接收到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-CONSUMER 103 , it forwards the parsed content to the third-party system 300 . The ESB-PROXY-OUT105 is used to receive the message of the ESB-CONSUMER103, and according to the message, 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-OUT106 is used to receive the message of the ESB-CONSUMER103, and request the third-party system 300 according to the message according to the request mode preset by the third-party system 300, upload or download the corresponding file in the data request .

2)当所述数据请求的服务方为企业系统200时,直接将将解析后的内容发送至所述企业系统200。2) When the server of the data request is the enterprise system 200, the parsed content is directly sent to the enterprise system 200.

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-party system 300, obtain the request result from the third-party system 300 through the outgoing proxy server, and temporarily store the request result in the message of KAFKA102 in the queue.

2)当所述数据请求的服务方为企业系统200时,直接从所述企业系统中获取所述请求结果,并将所述请求结果暂存至KAFKA102的消息队列中。2) When the server of the data request is the enterprise system 200, directly obtain the request result from the enterprise system, and temporarily store the request result in the message queue of the KAFKA 102.

ESB-API101从所述KAFKA102的消息队列中获取所述请求结果,并将所述请求结果发送至所述数据请求的请求方。The ESB-API 101 obtains the request result from the message queue of the KAFKA 102, 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)当所述数据请求的请求方为企业系统200时,ESB-API101直接将所述请求结果发送至所述企业系统200。1) When the requester of the data request is the enterprise system 200, the ESB-API 101 directly sends the request result to the enterprise system 200.

2)当所述数据请求的请求方为第三方系统300时,ESB-API101通过所述接入代理服务器将所述请求结果发送至所述第三方系统300。2) When the requester of the data request is the third-party system 300, the ESB-API 101 sends the request result to the third-party system 300 through the access proxy server.

应当说明的是,无论是企业系统200还是第三方系统300,都既可以做数据请求的请求方,也可以做响应所述数据请求并提供请求结果的数据请求的服务方。即,企业系统200作为数据请求的请求方在向所数据请求的服务方(第三方系统300)发送数据请求的同时,也可以作为数据请求的服务方响应数据请求并为数据请求的请求方(第三方系统300)提供请求结果。第三方系统作为数据请求的请求方在向所数据请求的服务方(企业系统200)发送数据请求的同时,也可以作为数据请求的服务方响应数据请求并为数据请求的请求方(企业系统200)提供请求结果。It should be noted that both the enterprise system 200 and the third-party system 300 can be both the requester of the data request and the server of the data request that responds to the data request and provides the request result. That is, when the enterprise system 200, as the requester of the data request, sends the data request to the server of the data request (the third-party system 300), it can also act as the server of the data request to respond to the data request and be the requester of the data request (the third-party system 300). The third party system 300) provides the request result. As the requester of the data request, the third-party system can also respond to the data request as the servicer of the data request and be the requester of the data request (enterprise system 200) while sending the data request to the servicer (enterprise system 200) of the data request. ) provides the request result.

进一步地,当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-party systems 300 are abnormal or the request times out, they can automatically fuse the current data request, increase the waiting time of messages in the message queue, and buffer messages. , reducing the pressure on the ESB100, and at the same time returning preset information to the requester of the current data request in time, achieving a timely response and improving the experience of the requester of the data request.

进一步的,所述ESB100还可以用于配置可视化管理工具,用以存储消息及响应数据请求。所述可视化管理工具可以包括:mongo dB、mongo booster、admin Mongo。Further, the ESB 100 can also be used to configure 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.

进一步的,所述ESB100还可以用于提供分布式应用程序协调服务,用于为KAFKA和dubbo提供注册中心。所述分布式应用程序协调服务可以是ZooKeeper组件。Further, the ESB 100 can also be used to provide distributed application coordination services, and to provide 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 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:

Figure BDA0001766041040000141
Figure BDA0001766041040000141

Figure BDA0001766041040000151
Figure BDA0001766041040000151

当侦测到接收到请求方的数据请求后,执行步骤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:

Figure BDA0001766041040000181
Figure BDA0001766041040000181

本实施例中,将解析后的内容发送至所述数据请求对应的服务方可以包括: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.

实施例三Embodiment 3

图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 terminal 3 includes: a memory 31 , at least one processor 32 , a computer program 33 stored in the memory 31 and executable on the at least one processor 32 , and at least one communication bus 34 .

所述至少一个处理器32执行所述计算机程序33时实现上述企业服务总线数据处理方法实施例中的步骤。When the at least one processor 32 executes the computer program 33, the steps in the foregoing embodiments of the enterprise service bus data processing method are implemented.

示例性的,所述计算机程序33可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器31中,并由所述至少一个处理器32执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序33在所述终端3中的执行过程。Exemplarily, the computer program 33 may be divided into one or more modules/units, and the one or more modules/units are stored in the memory 31 and executed by the at least one processor 32, to complete the present invention. The one or more modules/units may be a series of computer program instruction segments capable of performing specific functions, and the instruction segments are used to describe the execution process of the computer program 33 in the terminal 3 .

所述终端3可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解,所述示意图3仅仅是终端3的示例,并不构成对终端3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端3还可以包括输入输出设备、网络接入设备、总线等。The terminal 3 may be a computing device such as a desktop computer, a notebook, a handheld computer, and a cloud server. Those skilled in the art can understand that the schematic diagram 3 is only an example of the terminal 3, and does not constitute a limitation on the terminal 3, and may include more or less components than the one shown, or combine some components, or different components For example, the terminal 3 may further include an input and output device, a network access device, a bus, and the like.

所述至少一个处理器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 processor 32 may be a central processing unit (Central Processing Unit, CPU), and may also be other general-purpose processors, digital signal processors (Digital Signal Processors, DSP), application specific integrated circuits (Application Specific Integrated Circuit, ASIC) ), off-the-shelf programmable gate array (Field-Programmable Gate Array, FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, and the like. The processor 32 can be a microprocessor or the processor 32 can also be any conventional processor, etc. The processor 32 is the control center of the terminal 3, and uses various interfaces and lines to connect various parts of the entire terminal 3 part.

所述存储器31可用于存储所述计算机程序33和/或模块/单元,所述处理器32通过运行或执行存储在所述存储器31内的计算机程序和/或模块/单元,以及调用存储在存储器31内的数据,实现所述终端3的各种功能。所述存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端3的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器31可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。The memory 31 can be used to store the computer program 33 and/or modules/units, and the processor 32 executes or executes the computer programs and/or modules/units stored in the memory 31 and calls the computer programs and/or modules/units stored in the memory 31. 31 to realize various functions of the terminal 3 . The memory 31 may mainly include a stored program area and a stored data area, wherein the stored program area may store an operating system, an application program required for at least one function (such as a sound playback function, an image playback function, etc.), etc.; the storage data area may Data created according to the use of the terminal 3 (such as audio data, phone book, etc.) and the like are stored. In addition, the memory 31 may include high-speed random access memory, and may also include non-volatile memory, such as hard disk, internal memory, plug-in hard disk, Smart Media Card (SMC), Secure Digital (SD) card , a flash memory card (Flash Card), at least one magnetic disk storage device, flash memory device, or other volatile solid-state storage device.

所述终端3集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。If the modules/units integrated in the terminal 3 are implemented in the form of software functional units and sold or used as independent products, they may be stored in a computer-readable storage medium. Based on this understanding, the present invention can implement all or part of the processes in the methods of the above embodiments, and can also be completed by instructing relevant hardware through a computer program, and the computer program can be stored in a computer-readable storage medium. When the program is executed by the processor, the steps of the foregoing method embodiments can be implemented. Wherein, the computer program includes computer program code, and the computer program code may be in the form of source code, object code, executable file or some intermediate form. The computer-readable medium may include: any entity or device capable of carrying the computer program code, a recording medium, a U disk, a removable hard disk, a magnetic disk, an optical disk, a computer memory, a read-only memory (ROM, Read-Only Memory) , Random Access Memory (RAM, Random Access Memory), electric carrier signal, telecommunication signal and software distribution medium, etc. It should be noted that the content contained in the readable medium of the computer can be appropriately increased or decreased according to the requirements of legislation and patent practice in the jurisdiction area. For example, in certain jurisdictions, according to legislation and patent practice, computer readable medium Excluding electric carrier signals and telecommunications signals.

在本发明所提供的几个实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。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)

1.一种企业服务总线系统,所述企业服务总线系统通讯连接多个企业系统和多个第三方系统,其特征在于,所述企业服务总线系统包括: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子系统通讯连接,其中,1. an enterprise service bus system, the enterprise service bus system communication connects a plurality of enterprise systems and a plurality of third-party systems, it is characterized in that, the enterprise service bus system comprises: ESB-API subsystem, KAFKA subsystem, ESB-CONSUMER subsystem, ESB-PROXY-IN subsystem, ESB-PROXY-OUT subsystem, ESB-FILE-PROXY-OUT subsystem, the KAFKA subsystem is respectively connected with the ESB-API subsystem and 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子系统还用于将所述企业服务总线系统封装后的消息由消息生产者发送至所述KAFKA子系统;The ESB-API subsystem is further configured to send the message encapsulated by the enterprise service bus system to the KAFKA subsystem by the message producer; 所述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, including: The messages to be processed are distributed and stored as multiple copies; when the number of messages to be processed exceeds a preset number threshold, each message in the messages to be processed is sliced or diced; the messages to be processed compress; 所述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, including: according to the service Create a thread pool of corresponding size according to the number of concurrent requests corresponding to the party, and the number of concurrent requests is equal to the size of the thread pool; 所述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. 2.一种利用如权利要求1所述的企业服务总线系统进行企业服务总线数据处理方法,其特征在于,所述方法包括:2. a kind of utilizing enterprise service bus system as claimed in claim 1 to carry out enterprise service bus data processing method, it is characterized in that, described method comprises: 发布服务,供请求方调用,所述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. 3.如权利要求2所述的方法,其特征在于,所述请求方的数据请求为所述请求方根据企业服务系统所发布的服务协议对数据请求进行封装后的数据请求,包括:3. The method according to claim 2, wherein the data request of the requesting party is a data request after the requesting party encapsulates the data request according to the service agreement issued by the enterprise service system, comprising: 当所述请求方为所述企业系统时,根据所述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. 4.如权利要求2所述的方法,其特征在于,所述根据所述数据请求识别所述数据请求的服务方包括:4. The method of claim 2, wherein the identifying the service party of the data request according to the data request comprises: 根据所述数据请求中携带的数据请求服务方标识识别所述数据请求的服务方;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. 5.如权利要求2所述的方法,其特征在于,所述根据所述请求的服务方将所述数据请求封装成相应的消息,并将封装后的消息由所述ESB-API子系统中的消息生产者将消息发送至所述KAFKA子系统包括:5. The method according to claim 2, wherein the service party according to the request encapsulates the data request into a corresponding message, and sends the encapsulated message from the ESB-API subsystem The message producers that send messages to the KAFKA subsystem include: 当所述数据请求的接收系统为所述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. 6.如权利要求2所述的方法,其特征在于,6. The method of claim 2, wherein 所述根据所述待处理的消息创建相应的线程包括:根据所述服务方对应的所述请求并发数创建相应大小的线程池,所述请求并发数等于所述线程池的大小;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 number of requests corresponding to the server, where the concurrent number of requests is equal to the size of the thread pool; 所述将解析后的内容发送至所述数据请求对应的服务方包括:当所述数据请求的服务方为所述第三方系统时,通过所述ESB-PROXY-OUT子系统或所述ESB-FILE-PROXY-OUT子系统将解析后的内容发送至所述数据请求的服务方;当所述数据请求的服务方为所述企业系统时,直接将将解析后的内容发送至所述企业系统;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 ESB- The FILE-PROXY-OUT subsystem sends the parsed content to the server of the data request; when the server of the data request is the enterprise system, it directly sends the parsed content to the enterprise system ; 所述将所述请求结果发送至所述数据请求的请求方包括:当所述数据请求的请求方为所述企业系统时,所述ESB-API子系统直接将所述请求结果发送至所述企业系统;当所述数据请求的请求方为所述第三方系统时,所述ESB-API子系统通过所述ESB-PROXY-OUT子系统或所述ESB-FILE-PROXY-OUT子系统将所述请求结果发送至所述第三方系统。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 data request. Enterprise system; when the requester of the data request is the third-party system, the ESB-API subsystem transfers the data through the ESB-PROXY-OUT subsystem or the ESB-FILE-PROXY-OUT subsystem The request result is sent to the third-party system. 7.如权利要求2至6任意一项所述的方法,其特征在于,所述方法还包括:7. The method according to any one of claims 2 to 6, wherein the method further comprises: 判断当前请求状态是否满足熔断条件;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. 8.如权利要求7所述的方法,其特征在于,所述熔断条件包括以下一种或多种的组合:8. The method of claim 7, wherein the fusing condition comprises 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. 9.一种终端,其特征在于,所述终端包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如权利要求2至8中任意一项所述的企业服务总线数据处理方法。9. A terminal, characterized in that the terminal comprises a processor and a memory, and the processor is configured to implement the enterprise service according to any one of claims 2 to 8 when executing a computer program stored in the memory Bus data processing method. 10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求2至8中任意一项所述的企业服务总线数据处理方法。10. A computer-readable storage medium on which a computer program is stored, characterized in that, when the computer program is executed by a processor, the computer program as claimed in any one of claims 2 to 8 is implemented. Enterprise Service Bus data processing methods.
CN201810928884.5A 2018-08-15 2018-08-15 Enterprise service bus system, data processing method, terminal and storage medium Expired - Fee Related CN109271259B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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