CN111756844A - 一种多语言消息代理方法及装置 - Google Patents
一种多语言消息代理方法及装置 Download PDFInfo
- Publication number
- CN111756844A CN111756844A CN202010588901.2A CN202010588901A CN111756844A CN 111756844 A CN111756844 A CN 111756844A CN 202010588901 A CN202010588901 A CN 202010588901A CN 111756844 A CN111756844 A CN 111756844A
- Authority
- CN
- China
- Prior art keywords
- message
- server
- proxy server
- middleware
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供一种多语言消息代理方法及装置,该方法包括:代理服务器接收应用服务器基于命令字通讯协议发送的第一报文;所述第一报文符合所述应用服务器使用的第一程序语言;所述代理服务器将所述第一报文转换为第二报文,并将所述第二报文通过所述代理服务器中的消息中间件客户端发送给消息中间件服务端;所述第二报文符合所述消息中间件客户端与所述消息中间件服务端使用的第二程序语言。采用上述方法,将消息中间件与应用服务器解耦,使得在消息中间件和应用服务器即使是用的程序语言不同,也能相互通信。降低应用系统和消息中间件的通信系统的运营与维护成本。
Description
技术领域
本申请涉及金融科技(Fintech)的计算机技术领域,尤其涉及一种多语言消息代理方法及装置。
背景技术
近年来,随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出更高的要求。相应的,随着计算机技术的发展,计算机所应用的编程语言也越加多样化,如,java、c、go等编程语言。计算机间的通信,往往通过这些编程语言实现。
现有技术中,应用系统(Client)间的通信有时需要消息中间件(MQ Server)辅助通信,由于当下比较流行的程序设计语言是java。因此,大多生产的消息中间件(MQServer)设计语言为java。但应用系统(Client)的设计语言却因为企业需要而多种多样,包括java、python、c和go。如此,应用系统(Client)通过消息中间件(MQ Server)通信时常出现应用系统(Client)和消息中间件(MQ Server)的程序语言不同,而导致的无法通信。且在应用系统(Client)和消息中间件(MQ Server)的通信系统中,应用系统(Client)需要通过消息中间件客户端(MQ Client)与消息中间件(MQ Server)通信,因此,消息中间件客户端(MQ Client)通常集成在应用系统(Client)中;也因此,当被集成在应用系统(Client)中的消息中间件客户端(MQ Client)需要进行版本漏洞升级时,所有相关应用系统(Client)需要和集成在应用系统(Client)中的消息中间件客户端(MQ Client)一同更新。但由于企业会有大量的应用系统(Client)通过消息中间件(MQ Server)进行通信,当消息中间件客户端(MQ Client)需要进行版本漏洞升级,相应的,若将大量的应用系统(Client)更新,需要消耗大量的时间和人力物力。且大量的应用系统(Client)更新一般会伴随系统更新失败或更新失误的情况,更是增加应用系统(Client)更新的成本。
发明内容
本发明实施例提供一种多语言消息代理方法及装置,用于实现解除应用系统与消息中间件的耦合,降低应用系统和消息中间件的通信系统的运营与维护成本。
第一方面,本发明实施例提供一种多语言消息代理方法,该方法包括:
代理服务器接收应用服务器基于命令字通讯协议发送的第一报文;所述第一报文符合所述应用服务器使用的第一程序语言;所述代理服务器将所述第一报文转换为第二报文,并将所述第二报文通过所述代理服务器中的消息中间件客户端发送给消息中间件服务端;所述第二报文符合所述消息中间件客户端与所述消息中间件服务端使用的第二程序语言。
采用上述方法,通过在消息中间件服务端和应用服务器间设置代理服务器,并使得代理服务器中包含消息中间件客户端;使得代理服务器可以接收应用服务器基于命令字通讯协议发送的第一报文,并转化成第二报文,进一步,通过中间件客户端发送到消息中间件服务端。其中,第一报文使用的是第一程序语言,第二报文使用的是第二程序语言。如此,将消息中间件与应用服务器解耦,使得在消息中间件和应用服务器即使是用的程序语言不同,也能相互通信。降低应用系统和消息中间件的通信系统的运营与维护成本。
在一种可能的设计中,所述代理服务器将所述第一报文转换为第二报文,包括:代理服务器从所述第一报文中提取出携带的消息中间件服务端的ID,基于所述消息中间件服务端的ID与第二程序语言的映射关系,确定第二报文所属的第二程序语言,将符合第一程序语言的所述第一报文转换成符合第二程序语言的第二报文;或者,所述代理服务器基于消息中间件服务端的使用情况,确定消息中间件服务端的ID,基于所述消息中间件服务端的ID与第二程序语言的映射关系,确定第二报文所属的第二程序语言,将符合第一程序语言的所述第一报文转换成符合第二程序语言的第二报文。
采用上述方法,第一报文中包含应用服务端的ID,代理服务器中包含应用服务端的ID与第二程序语言的映射关系。可以根据应用服务端的ID确定该应用服务器所应用的第二程序语言。继而,将第一报文转换为第二程序语言的第二报文。如此,消除多种不同程序语言的服务器之间的通信障碍。或者,代理服务器可以根据消息中间件服务端的使用情况选择消息中间件服务端,进一步确定该消息中间件服务端的第二程序语言,将符合第一程序语言的第一报文转换成符合第二程序语言的第二报文。如此,可以通过选择性能较好的消息中间件服务端传输第二报文,加快报文传输的速度。
在一种可能的设计中,所述命令字通讯协议对应的报文格式包括报文头和报文体;所述报文头中包括用于指示报文类型的命令字;所述报文体中包括待传输内容;所述代理服务器将所述第一报文转换为第二报文,包括:所述代理服务器根据所述第一报文中的命令字,确定生成的第二报文的报文类型,并将从所述第一报文中提取的待传输内容加载至所述第二报文中。
采用上述方法,使得命令字通讯协议对应的报文格式包括报文头和报文体,并在报文头中设置表征报文类型的命令字,在报文体中设置待传输内容。进一步,应用服务器在根据该命令字通讯协议将第一报文发送至代理服务器时,代理服务器同样基于该命令字通讯协议获取第一报文的报文类型和待传输内容,根据应用第一程序语言的命令字表征的报文类型,转化得到第二程序语言的报文类型,并将待传输内容加载到相应位置,得到消息中间件可读取的第二报文;代理服务器通过消息中间件客户端,将该第二报文发送至消息中间件服务端。如此,使得应用不同程序语言的应用服务器和消息中间件可以无障碍通信,降低应用系统和消息中间件的通信系统的运营与维护成本。
在一种可能的设计中,代理服务器接收应用服务器基于命令字通讯协议发送的第一报文之前,还包括:所述代理服务器接收所述应用服务器发送的连接建立请求;所述代理服务器创建所述消息中间件客户端。
采用上述方法,在代理服务器接收应用服务器发送的连接建立请求后,创建消息中间件客户端,消息中间件客户端提供了代理服务器与消息中间件服务端的接口,使得代理服务器可以与消息中间件服务端通信,相比于现有技术中将消息中间件客户端与应用服务器中的应用系统集成,本申请实施例中将消息中间件客户端设置在代理服务器中,由代理服务器创建该消息中间件客户端。如此,即使消息中间件客户端发生异常需要更新,应用服务器中的应用系统无需对应更新,可以通过代理服务器直接获取更新的消息中间件客户端,保证应用服务器与消息中间件正常通信,帮助应用服务器与消息中间件的解耦。
第二方面,本发明实施例提供一种多语言消息代理方法,该方法包括:
应用服务器确定代理服务器;所述代理服务器用于为所述应用服务器与消息中间件服务端进行报文传输;所述应用服务器基于命令字通讯协议发送第一报文至所述代理服务器,所述第一报文符合所述应用服务器使用的第一程序语言;所述代理服务器用于将所述第一报文转换为第二报文,并将所述第二报文通过所述代理服务器中的消息中间件客户端发送给所述消息中间件服务端;所述第二报文符合所述消息中间件客户端与所述消息中间件服务端使用的第二程序语言。
采用上述方法,应用服务器确定使用的代理服务器,并基于命令字通讯协议发送应用第一程序语言的第一报文至该代理服务器;代理服务器将该应用第一程序语言的第一报文转化为应用第二程序语言的第二报文,通过消息中间件客户端将该第二报文发送至消息中间件服务端。如此,消息中间件服务端将该第二报文发送至另一侧的应用服务器对应的代理服务器,另一侧的应用服务器对应的代理服务器基于命令字通讯协议将该应用第二程序语言的第二报文转化为应用第一程序语言的第一报文,发送至另一侧的应用服务器。如此,完成应用服务器间通过不同程序语言的消息中间件进行通信。将消息中间件与应用服务器解耦,降低应用系统和消息中间件的通信系统的运营与维护成本。
在一种可能的设计中,所应用服务器确定代理服务器,包括:
所述应用服务器从配置服务器中获取代理服务器的地址列表;
所述应用服务器从所述代理服务器的地址列表中确定出所述代理服务器。
采用上述方法,应用服务器从配置服务器中获取代理服务器的地址列表,并从代理服务器的地址列表中确定出代理服务器。如此,应用服务器可以根据选定的代理服务器的地址,建立与该代理服务器的连接,实现通过代理服务器将消息中间件与应用服务器解耦,使得在消息中间件和应用服务器即使是用的程序语言不同,也能相互通信。降低应用系统和消息中间件的通信系统的运营与维护成本。
第三方面,本发明实施例提供一种多语言消息代理装置,该装置包括:
收发模块,用于接收应用服务器基于命令字通讯协议发送的第一报文;所述第一报文符合所述应用服务器使用的第一程序语言;
处理模块,用于将所述第一报文转换为第二报文,并将所述第二报文通过所述代理服务器中的消息中间件客户端发送给消息中间件服务端;所述第二报文符合所述消息中间件客户端与所述消息中间件服务端使用的第二程序语言。
第四方面,本发明实施例提供一种多语言消息代理装置,该装置包括:
确定模块,用于确定代理服务器;所述代理服务器用于为所述应用服务器与消息中间件服务端进行报文传输;
收发模块,用于基于命令字通讯协议发送第一报文至所述代理服务器,所述第一报文符合所述应用服务器使用的第一程序语言;所述代理服务器用于将所述第一报文转换为第二报文,并将所述第二报文通过所述代理服务器中的消息中间件客户端发送给所述消息中间件服务端;所述第二报文符合所述消息中间件客户端与所述消息中间件服务端使用的第二程序语言。
第五方面,本发明实施例还提供一种计算设备,包括:存储器,用于存储计算机程序;处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行如第一方面、第二方面的各种可能的设计中所述的方法。
第六方面,本发明实施例还提供一种计算机可读非易失性存储介质,包括计算机可读程序,当计算机读取并执行所述计算机可读程序时,使得计算机执行如第一方面、第二方面的各种可能的设计中所述的方法。
本发明的这些实现方式或其他实现方式在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种多语言消息代理方法的架构示意图;
图2为本发明实施例提供的一种多语言消息代理方法的架构示意图;
图3为本发明实施例提供的一种多语言消息代理方法的流程示意图;
图4为本发明实施例提供的一种多语言消息代理方法的流程示意图;
图5为本发明实施例提供的一种多语言消息代理方法的流程示意图;
图6为本发明实施例提供的一种多语言消息代理装置示意图;
图7为本发明实施例提供的一种多语言消息代理装置示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图所示,本发明实施例提供的一种多语言消息代理方法的架构示意图,如图1所示,多个应用服务器101中的应用服务器102从配置服务器107中的代理服务器地址列表中选择一个代理服务器的地址,应用服务器102根据该代理服务器104的地址与代理服务器104及建立连接。这里,本发明实施例还提供了又一种多语言消息代理方法的架构示意图,如图2所示,代理服务器104中包含消息中间件客户端,如此,在代理服务器104与应用服务器102建立连接后,代理服务器104创建消息中间件客户端。应用服务器102基于命令字通讯协议生成并发送第一报文至代理服务器104,代理服务器104将该第一报文转化为第二报文,通过消息中间件客户端将该第二报文发送至消息中间件服务端106(可以为一个或多个,具体不做限定),消息中间件服务端106将该第二报文发送至代理服务器105,代理服务器105通过消息中间件客户端接收该第二报文,并将该第二报文转化为第一报文,基于命令字通讯协议将第一报文发送至应用服务器103。这里,应用服务器102和应用服务器103可以是同一应用服务器。代理服务器105中的消息中间件客户端可以是与应用服务器103创建连接后生成的。代理服务器104和代理服务器105对应的消息中间件服务端106可以是同一个消息中间件服务端或不同消息中间件服务端。
基于此,本申请实施例提供了一种多语言消息代理方法的流程,如图3所示,包括:
步骤301、代理服务器接收应用服务器基于命令字通讯协议发送的第一报文;所述第一报文符合所述应用服务器使用的第一程序语言;
此处,代理服务器用于转化不同的程序语言的报文,代理服务器内可以存储同一意义对应不同的程序语言的表达形式。第一程序语言可以是java、c、c++、go、python等等。命令字通讯协议包含同一意义对应不同的程序语言的表达形式的规则。应用服务器中包含至少一个应用系统,为通过接入消息中间件与另一应用系统通信的需求方。
步骤302、所述代理服务器将所述第一报文转换为第二报文,并将所述第二报文通过所述代理服务器中的消息中间件客户端发送给消息中间件服务端;所述第二报文符合所述消息中间件客户端与所述消息中间件服务端使用的第二程序语言。
此处,代理服务器中的消息中间件客户端为代理服务器与消息中间件服务端的通信接口。消息中间件服务端用于应用服务器间的通信。第二程序语言可以是java、c、c++、go、python等等。
本申请实施例提供了一种第一报文转换为第二报文的方法,包括:
代理服务器从所述第一报文中提取出携带的消息中间件服务端的ID,基于所述消息中间件服务端的ID与第二程序语言的映射关系,确定第二报文所属的第二程序语言,将符合第一程序语言的所述第一报文转换成符合第二程序语言的第二报文;或者,所述代理服务器基于消息中间件服务端的使用情况,确定消息中间件服务端的ID,基于所述消息中间件服务端的ID与第二程序语言的映射关系,确定第二报文所属的第二程序语言,将符合第一程序语言的所述第一报文转换成符合第二程序语言的第二报文。此处,代理服务器中可以存储消息中间件服务端的ID与程序语言的映射关系,以使得应用服务端之间通过消息中间件进行报文传输时,可以根据该映射关系消除应用服务端之间通过消息中间件进行报文传输时产生的不同程序语言的障碍。另外,消息中间件服务端的使用情况可以包括消息中间件服务端的负载情况、预设的消息中间件服务端的优先级等。代理服务器在选择消息中间件服务端时,可以选择优先级较高和\或负载率较低的消息中间件服务端等,并确定该消息中间件服务端的第二程序语言。如此,可以降低消息中间件服务端的工作压力,加快应用服务端之间的报文传输的速度。
本申请实施例提供了一种报文格式,所述命令字通讯协议对应的报文格式包括报文头和报文体;所述报文头中包括用于指示报文类型的命令字;所述报文体中包括待传输内容;所述代理服务器将所述第一报文转换为第二报文,包括:所述代理服务器根据所述第一报文中的命令字,确定生成的第二报文的报文类型,并将从所述第一报文中提取的待传输内容加载至所述第二报文中。也就是说,报文包括报文头和报文体,报文头中包括用于指示报文类型的命令字,如seq(报文编号)、Command(命令字,可以包括描述请求类型的命令字)、Code(返回码,用于标记应用服务器和代理服务器的通信状态为成功或发生异常)、Msg(当返回码为发生异常时,用于存储具体异常信息)。报文体中包括待传输内容,待传输内容可以是业务信息等。本申请实施例提供了一种命令字通讯协议对应的Command,具体如表1所示:
表1
本申请实施例提供了一种多语言消息代理方法,代理服务器接收应用服务器基于命令字通讯协议发送的第一报文之前,还包括:所述代理服务器接收所述应用服务器发送的连接建立请求;所述代理服务器创建所述消息中间件客户端。也就是说,应用服务器和代理服务器建立连接后,代理服务器创建消息中间件客户端。以上述表1中的Command为例,应用服务器和代理服务器建立连接的过程中:首先,应用服务器发送在报文头中包含HELLO_REQUEST命令字的第一报文连接建立请求至代理服务器,请求建立连接;代理服务器收到该第一报文连接建立请求后,建立与应用服务器的连接,创建消息中间件客户端,并将连接创建状态通过在报文头中包含HELLO_RESPONSE命令字的第一报文返回给应用服务器;连接建立后,应用服务器将在报文头中包含HEARTBEAT_REQUEST命令字的第一报文心跳请求发送至代理服务器,代理服务器收到该第一报文心跳请求后通过回复在报文头中包含HEARTBEAT_RESPONSE命令字的第一报文响应,保持应用服务器和代理服务器连接状态。
基于上述流程,本申请实施例提供了一种多语言消息代理方法的流程,如图4所示,包括:
步骤401、应用服务器确定代理服务器;所述代理服务器用于为所述应用服务器与消息中间件服务端进行报文传输;
此处,应用服务器选择连接的代理服务器,并于代理服务器创建连接。
步骤402、所述应用服务器基于命令字通讯协议发送第一报文至所述代理服务器,所述第一报文符合所述应用服务器使用的第一程序语言;所述代理服务器用于将所述第一报文转换为第二报文,并将所述第二报文通过所述代理服务器中的消息中间件客户端发送给所述消息中间件服务端;所述第二报文符合所述消息中间件客户端与所述消息中间件服务端使用的第二程序语言。
此处,以上述表1中的Command为例,应用服务器基于命令字通讯协议发送第一报文时,在第一报文头中会包含Command以标记报文类型,如:
应用服务器在与代理服务器连接建立后,如果是发送同步消息,则在第一报文的报文头中会包含REQUEST_TO_SERVER命令字,如果是发送同步消息的回包消息,则在第一报文的报文头中会包含RESPONSE_TO_SERVER命令字,如果是发送异步消息,则在第一报文的报文头中会包含ASYNC_MESSAGE_TO_SERVER命令字;代理服务器收到应用服务器发送的第一报文后,将该第一报文转化为第二报文,并利用消息中间件客户端将该第二报文发送到消息中间件服务端。其中,同步消息为应用服务器发送第一报文,且该第一报文需要同步等待返回的响应,该响应也是通过报文方式返回,可以称作回包消息。异步消息为应用服务器只需发送第一报文,该第一报文为无需响应的报文类型。
应用服务器基于命令字通讯协议接收第一报文时,在第一报文的报文头中会包含Command以标记报文类型,如:应用服务器在与代理服务器连接建立后,可以发送在报文头中包含SUBSCRIBE_REQUEST命令字的,第一报文订阅主题请求;以告知代理服务器需要订阅哪些主题的消息,该主题的消息为另一侧应用服务器的消息;
代理服务器接收到应用服务器发送的,在报文头中包含SUBSCRIBE_REQUEST命令字的,第一报文订阅主题请求后;将该第一报文订阅主题请求转化为第二报文订阅主题请求,利用消息中间件客户端将该第二报文订阅主题请求发送至消息中间件服务端;并将订阅结果通过,在报文头中包含SUBSCRIBE_RESPONSE命令字的第一报文通知应用服务器;应用服务器订阅成功后,发送在报文头中包含LISTEN_REQUEST命令字的第一报文至代理服务器,告知代理服务器可以开启监听订阅主题信息;
代理服务器收到报文头中包含LISTEN_REQUEST命令字的第一报文后,启动消息中间件客户端从消息中间件服务端获取另一侧应用服务器的第二报文订阅主题信息,并将该第二报文订阅主题信息转化为,在报文头中包含LISTEN_RESPONSE命令字的第一报文订阅主题信息;将该第一报文订阅主题信息告知应用服务器;其中,如果是同步消息,则将该第二报文订阅主题信息转化为在报文头中包含REQUEST_TO_CLIENT命令字的第一报文订阅主题信息,将该第一报文订阅主题信息推送给应用服务器,如果是同步消息的回包消息,则将在报文头中包含RESPONSE_TO_CLIENT命令字的第一报文订阅主题信息推送给应用服务器,如果是异步消息,则将在报文头中包含ASYNC_MESSAGE_TO_CLIENT命令字的第一报文订阅主题信息推送给应用服务器。
本申请实施例提供了一种代理服务器的确定方法的流程,所应用服务器确定代理服务器,包括:所述应用服务器从配置服务器中获取代理服务器的地址列表;所述应用服务器从所述代理服务器的地址列表中确定出所述代理服务器。
此处,配置服务器中可以存储代理服务器的地址列表,如表2所示:
表2
如此,应用服务器从配置服务器中的代理服务器的地址列表中可以通过随机等方式获取代理服务器地址,并根据该代理服务器地址与该代理服务器建立连接。其中,应用服务器可以是定时从配置服务器中获取代理服务器的地址列表,或者需要进行报文传输时,从配置服务器中获取代理服务器的地址列表;又或者,配置服务器中的代理服务器的地址列表发生更新时,可以将更新后的代理服务器的地址列表主动推送至配置服务器。这里,应用服务器获取代理服务器的地址列表,以及应用服务器确定代理服务器地址的方式具体不做限定。基于上述流程,本申请实施例提供了一种多语言消息代理方法的流程,如图5所示,包括:
步骤501、应用服务器从配置服务器中的代理服务器的地址列表中随机获取代理服务器地址,并根据该代理服务器地址与该代理服务器建立连接。
步骤502、代理服务器确定与应用服务器建立连接后,生成消息中间件客户端。
步骤503、代理服务器接收应用服务器发送的第一报文,获取第一报文中的报文头和报文体,根据报文头中的报文类型转化为第二报文,并将第一报文体中的待传输内容加载到第二报文中。
步骤504、代理服务器通过消息中间件客户端将第二报文发送至消息中间件服务端。
步骤505、消息中间件服务端将另一侧应用服务器的代理服务器,或另一侧应用服务器发送的第二报文通过消息中间件客户端发送至代理服务器。
步骤506、代理服务器接收另一侧应用服务器的代理服务器,或另一侧应用服务器发送的第二报文后,将该第二报文转化为第一报文。
步骤507、代理服务器将该第一报文发送至应用服务器。
基于同样的构思,本申请实施例提供一种多语言消息代理装置,图6为本申请实施例提供的一种多语言消息代理示意图,如图6示,包括:
收发模块601,用于接收应用服务器基于命令字通讯协议发送的第一报文;所述第一报文符合所述应用服务器使用的第一程序语言;
处理模块602,用于将所述第一报文转换为第二报文,并将所述第二报文通过所述代理服务器中的消息中间件客户端发送给消息中间件服务端;所述第二报文符合所述消息中间件客户端与所述消息中间件服务端使用的第二程序语言。
在一种可能的设计中,所述处理模块602具体用于:代理服务器从所述第一报文中提取出携带的消息中间件服务端的ID,基于所述消息中间件服务端的ID与第二程序语言的映射关系,确定第二报文所属的第二程序语言,将符合第一程序语言的所述第一报文转换成符合第二程序语言的第二报文;或者,所述代理服务器基于消息中间件服务端的使用情况,确定消息中间件服务端的ID,基于所述消息中间件服务端的ID与第二程序语言的映射关系,确定第二报文所属的第二程序语言,将符合第一程序语言的所述第一报文转换成符合第二程序语言的第二报文。
在一种可能的设计中,所述命令字通讯协议对应的报文格式包括报文头和报文体;所述报文头中包括用于指示报文类型的命令字;所述报文体中包括待传输内容;所述代理服务器将所述第一报文转换为第二报文,包括:所述代理服务器根据所述第一报文中的命令字,确定生成的第二报文的报文类型,并将从所述第一报文中提取的待传输内容加载至所述第二报文中。
在一种可能的设计中,所述收发模块601还用于:所述代理服务器接收所述应用服务器发送的连接建立请求;所述代理服务器创建所述消息中间件客户端。
基于同样的构思,本申请实施例提供一种多语言消息代理装置,图7为本申请实施例提供的一种多语言消息代理示意图,如图7示,包括:
确定模块701,用于确定代理服务器;所述代理服务器用于为所述应用服务器与消息中间件服务端进行报文传输;
收发模块702,用于基于命令字通讯协议发送第一报文至所述代理服务器,所述第一报文符合所述应用服务器使用的第一程序语言;所述代理服务器用于将所述第一报文转换为第二报文,并将所述第二报文通过所述代理服务器中的消息中间件客户端发送给所述消息中间件服务端;所述第二报文符合所述消息中间件客户端与所述消息中间件服务端使用的第二程序语言。
在一种可能的设计中,所述确定模块701具体用于:所述应用服务器从配置服务器中获取代理服务器的地址列表;所述应用服务器从所述代理服务器的地址列表中确定出所述代理服务器。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种多语言消息代理方法,其特征在于,所述方法包括:
代理服务器接收应用服务器基于命令字通讯协议发送的第一报文;所述第一报文符合所述应用服务器使用的第一程序语言;
所述代理服务器将所述第一报文转换为第二报文,并将所述第二报文通过所述代理服务器中的消息中间件客户端发送给消息中间件服务端;所述第二报文符合所述消息中间件客户端与所述消息中间件服务端使用的第二程序语言。
2.如权利要求1所述的方法,其特征在于,所述代理服务器将所述第一报文转换为第二报文,包括:
代理服务器从所述第一报文中提取出携带的消息中间件服务端的ID,基于所述消息中间件服务端的ID与第二程序语言的映射关系,确定第二报文所属的第二程序语言,将符合第一程序语言的所述第一报文转换成符合第二程序语言的第二报文;
或者,所述代理服务器基于消息中间件服务端的使用情况,确定消息中间件服务端的ID,基于所述消息中间件服务端的ID与第二程序语言的映射关系,确定第二报文所属的第二程序语言,将符合第一程序语言的所述第一报文转换成符合第二程序语言的第二报文。
3.如权利要求1所述的方法,其特征在于,所述命令字通讯协议对应的报文格式包括报文头和报文体;
所述报文头中包括用于指示报文类型的命令字;
所述报文体中包括待传输内容;
所述代理服务器将所述第一报文转换为第二报文,包括:
所述代理服务器根据所述第一报文中的命令字,确定生成的第二报文的报文类型,并将从所述第一报文中提取的待传输内容加载至所述第二报文中。
4.如权利要求1或2所述的方法,其特征在于,代理服务器接收应用服务器基于命令字通讯协议发送的第一报文之前,还包括:
所述代理服务器接收所述应用服务器发送的连接建立请求;
所述代理服务器创建所述消息中间件客户端。
5.一种多语言消息代理方法,其特征在于,所述方法包括:
应用服务器确定代理服务器;所述代理服务器用于为所述应用服务器与消息中间件服务端进行报文传输;
所述应用服务器基于命令字通讯协议发送第一报文至所述代理服务器,所述第一报文符合所述应用服务器使用的第一程序语言;所述代理服务器用于将所述第一报文转换为第二报文,并将所述第二报文通过所述代理服务器中的消息中间件客户端发送给所述消息中间件服务端;所述第二报文符合所述消息中间件客户端与所述消息中间件服务端使用的第二程序语言。
6.如权利要求5所述的方法,其特征在于,所述应用服务器确定代理服务器,包括:
所述应用服务器从配置服务器中获取代理服务器的地址列表;
所述应用服务器从所述代理服务器的地址列表中确定出所述代理服务器。
7.一种多语言消息代理装置,其特征在于,所述装置包括:
收发模块,用于接收应用服务器基于命令字通讯协议发送的第一报文;所述第一报文符合所述应用服务器使用的第一程序语言;
处理模块,用于将所述第一报文转换为第二报文,并将所述第二报文通过所述代理服务器中的消息中间件客户端发送给消息中间件服务端;所述第二报文符合所述消息中间件客户端与所述消息中间件服务端使用的第二程序语言。
8.一种多语言消息代理装置,其特征在于,所述装置包括:
确定模块,用于确定代理服务器;所述代理服务器用于为所述应用服务器与消息中间件服务端进行报文传输;
收发模块,用于基于命令字通讯协议发送第一报文至所述代理服务器,所述第一报文符合所述应用服务器使用的第一程序语言;所述代理服务器用于将所述第一报文转换为第二报文,并将所述第二报文通过所述代理服务器中的消息中间件客户端发送给所述消息中间件服务端;所述第二报文符合所述消息中间件客户端与所述消息中间件服务端使用的第二程序语言。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有程序,当所述程序在计算机上运行时,使得计算机实现执行权利要求1至4或5、6中任一项所述的方法。
10.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行如权利要求1至4或5、6任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010588901.2A CN111756844A (zh) | 2020-06-24 | 2020-06-24 | 一种多语言消息代理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010588901.2A CN111756844A (zh) | 2020-06-24 | 2020-06-24 | 一种多语言消息代理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111756844A true CN111756844A (zh) | 2020-10-09 |
Family
ID=72677073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010588901.2A Pending CN111756844A (zh) | 2020-06-24 | 2020-06-24 | 一种多语言消息代理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111756844A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113645303A (zh) * | 2021-08-11 | 2021-11-12 | 曙光信息产业(北京)有限公司 | 数据传输方法、装置、计算机设备及存储介质 |
CN115118708A (zh) * | 2022-08-25 | 2022-09-27 | 飞狐信息技术(天津)有限公司 | 一种消息中间件的http协议代理方法及装置 |
-
2020
- 2020-06-24 CN CN202010588901.2A patent/CN111756844A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113645303A (zh) * | 2021-08-11 | 2021-11-12 | 曙光信息产业(北京)有限公司 | 数据传输方法、装置、计算机设备及存储介质 |
CN113645303B (zh) * | 2021-08-11 | 2024-04-23 | 曙光信息产业(北京)有限公司 | 数据传输方法、装置、计算机设备及存储介质 |
CN115118708A (zh) * | 2022-08-25 | 2022-09-27 | 飞狐信息技术(天津)有限公司 | 一种消息中间件的http协议代理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7519950B2 (en) | Method and system for version negotiation of distributed objects | |
CN111212085B (zh) | 物联网平台同步调用的方法、物联网系统和网络设备 | |
CN112784989B (zh) | 推理系统、推理方法、电子设备及计算机存储介质 | |
CN111447185A (zh) | 一种推送信息的处理方法及相关设备 | |
CN111064771B (zh) | 一种网络请求处理方法及系统 | |
CN108063813B (zh) | 一种集群环境下密码服务网络并行化的方法与系统 | |
CN110753129A (zh) | 消息传输方法、系统、装置、设备及计算机可读存储介质 | |
CN111756844A (zh) | 一种多语言消息代理方法及装置 | |
CN113259415B (zh) | 一种网络报文处理方法、装置及网络服务器 | |
CN110912805B (zh) | 消息读取状态的同步方法、终端、服务端及系统 | |
CN113726581B (zh) | 一种恢复网络设备的出厂配置的方法、装置及网络设备 | |
CN113342503B (zh) | 实时进度反馈方法、装置、设备及存储介质 | |
CN107438097B (zh) | 网络请求处理方法及装置 | |
CN112596931B (zh) | 一种跨进程通信方法、装置、电子设备及存储介质 | |
CN108111630B (zh) | 一种Zookeeper集群系统及其连接方法和系统 | |
CN113971098A (zh) | 一种RabbitMQ消费管理方法及系统 | |
CN108021459B (zh) | 跨进程发送打点日志的方法及装置 | |
US7568194B2 (en) | Method and system for availability checking on distributed objects | |
CN115599571A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN102986173B (zh) | 消息状态设置方法和cpm业务服务器 | |
CN112491903B (zh) | 多系统间对账方法、装置及系统 | |
CN113489775A (zh) | 一种基于vpp的七层负载均衡服务器及负载均衡方法 | |
CN114938396A (zh) | 服务调用请求的路由方法、创建服务的方法及装置 | |
CN114020453A (zh) | 服务总线消息处理方法、服务总线系统、电子设备及介质 | |
CN114416275A (zh) | 一种实现多个管理客户端同步虚拟机状态的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |