CN110138753B - 分布式消息服务***、方法、设备及计算机可读存储介质 - Google Patents
分布式消息服务***、方法、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110138753B CN110138753B CN201910342370.6A CN201910342370A CN110138753B CN 110138753 B CN110138753 B CN 110138753B CN 201910342370 A CN201910342370 A CN 201910342370A CN 110138753 B CN110138753 B CN 110138753B
- Authority
- CN
- China
- Prior art keywords
- message
- message engine
- data
- application system
- engine
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- 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
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种分布式消息服务***、方法、设备及计算机可读存储介质,该***包括:消息引擎集群单元包括不同类型的开源消息引擎的服务器;接口装置对消息引擎集群单元中所有开源消息引擎的原生接口进行统一封装,生成统一的访问入口,接收访问的业务应用***的请求;路由装置,从接口装置接收请求,从请求中获取业务应用***的验证数据和消息服务的场景信息,根据获取的验证数据和数据存储装置已存的业务应用***的验证信息对访问的业务应用***验证成功时,根据获取的消息服务的场景信息和数据存储装置已存的消息引擎的配置信息确定满足请求的消息引擎,通过确定出的消息引擎的服务器与访问的业务应用***建立连接,并提供消息服务。
Description
技术领域
本发明涉及分布式技术领域,特别涉及一种分布式消息服务***、方法、设备及计算机可读存储介质。
背景技术
随着业务服务产品的不断变化和用户使用情况的变化,目前普遍使用分布式架构来支持应用***能力高频高并发,而在这种架构下进一步需要应用***之间和应用***内部的交互处理方式逐步从同步模式走向异步模式,因此消息中间件(MOM)就成为了一种普遍的选择。
在消息中间件中,通常有一个名为Broker的节点(消息服务器),消息的发送者将消息发送至Broker上,Broker将消息存放在若干队列中,在合适的时间再将消息转发给接收者。这种模式不同于传统意义上的同步模式,在同步模式中,应用需要互相知道对方的接口形式和地址,在多次对话后才能进行正式的数据交互。而通过消息中间件,各个模块只需要调用相同的接口,即可进行数据传输。模块之间则通过传递消息来激活对方的事件,完成相应的操作。
消息中间件能在不同平台之间通信,它常被用来屏蔽掉各种平台及协议之间的特性,实现应用程序之间的协同,其优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这也是它比远程过程调用更进一步的原因。
目前,消息中间件领域已经有较为成熟的几款开源产品,如Apache下的ActiveMQ、Kafka、RocketMQ,以及hornetQ,RabbitMQ,ZeroMQ等等也被普遍使用,此外也有商业化的IBM MQ,ironMQ等产品可供用户选择。这些不同的产品之间,所使用的协议和规范不同,如ActiveMQ,HornetMQ使用JMS规范,RabbitMQ使用AMQP,Kafka、RocketMQ使用自己设计的规范等。由于各个产品的功能不同,适用场景不同,产品所提供的API接口和接口的使用方法也不尽相同。对于用户而言,很多情况下根据不同业务场景需要引入多种开源产品,这就要求用户了解所有的产品而后根据这些产品进行参数调优和接口学习,才能进行最终的开发。对于不同场景的应用,甚至在同一个应用中不同场景的程序模块之间,所用到的消息中间件产品也可能不尽相同,这就对开发人员所需要花费的学习成本有了进一步的要求,用户在软件的使用上需要付出较高的学习成本。
发明内容
本发明实施例提供了一种分布式消息服务***,以解决现有技术中直接使用各类消息中间件时需要用户学习各类消息中间件而导致的学习成本高、开发成本高的技术问题。该***包括:
接口装置、路由装置、数据存储装置以及消息引擎装置,其中,
所述消息引擎装置包括:
消息引擎集群单元,所述消息引擎集群单元包括不同类型的开源消息引擎的服务器;
所述数据存储装置,用于存储业务应用***的验证信息以及消息引擎的配置信息;
所述接口装置,用于对所述消息引擎集群单元中所有开源消息引擎的原生接口进行统一封装,生成统一的访问入口,所述访问入口供各业务应用***访问,接收访问的业务应用***的请求;
所述路由装置,与所述接口装置、所述数据存储装置和所述消息引擎装置连接,用于从所述接口装置接收所述请求,从所述请求中获取业务应用***的验证数据和消息服务的场景信息,根据获取的验证数据和所述数据存储装置已存的业务应用***的验证信息对访问的业务应用***进行验证,根据获取的消息服务的场景信息和所述数据存储装置已存的消息引擎的配置信息确定满足所述请求的消息引擎,在验证成功时,将所述请求转发给所述消息引擎集群单元中确定出的消息引擎的服务器;
所述消息引擎集群单元,用于通过确定出的消息引擎的服务器与访问的业务应用***建立连接,并根据所述请求提供消息服务。
本发明实施例还提供了一种分布式消息服务方法,以解决现有技术中直接使用各类消息中间件时需要用户学习各类消息中间件而导致的学习成本高、开发成本高的技术问题。该方法包括:
对不同类型的开源消息引擎的原生接口进行统一封装,生成统一的访问入口,所述访问入口供各业务应用***访问,接收访问的业务应用***的请求;
从所述请求中获取业务应用***的验证数据和消息服务的场景信息,根据获取的验证数据和已存的业务应用***的验证信息对访问的业务应用***进行验证,根据获取的消息服务的场景信息和已存的消息引擎的配置信息确定满足所述请求的消息引擎,在验证成功时,将所述请求转发给确定出的消息引擎的服务器;
通过确定出的消息引擎的服务器与访问的业务应用***建立连接,通过确定出的消息引擎的服务器根据所述请求提供消息服务。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的分布式消息服务方法,以解决现有技术中直接使用各类消息中间件时需要用户学习各类消息中间件而导致的学习成本高、开发成本高的技术问题。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的分布式消息服务方法的计算机程序,以解决现有技术中直接使用各类消息中间件时需要用户学习各类消息中间件而导致的学习成本高、开发成本高的技术问题。
在本发明实施例中,通过对消息引擎集群单元中所有不同类型的开源消息引擎的原生接口进行统一封装,生成统一的访问入口,各业务应用***通过该访问入口访问分布式消息服务***中的接口装置,进而路由装置将各业务应用***的请求转发给消息引擎集群单元中根据请求确定出的消息引擎的服务器,最后,确定出的消息引擎的服务器与访问的业务应用***建立连接,并根据请求为业务应用***提供消息服务,即实现了在使用不同类型的开源消息引擎提供消息服务时,只需访问该统一的访问入口即可,无需用户针对每类开源消息引擎的软件进行学习,从而有利于降低用户的学习成本和开发成本,进而有利于分布式消息服务的推广。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是本发明实施例提供的一种分布式消息服务***的结构框图;
图2是本发明实施例提供的一种消息引擎装置的结构框图;
图3是本发明实施例提供的一种管理装置的结构框图;
图4是本发明实施例提供的一种上述分布式消息服务***的工作流程图;
图5是本发明实施例提供的一种上述分布式消息服务***进行消息引擎安装部署或扩容的流程图;
图6是本发明实施例提供的一种上述分布式消息服务***进行监控和自动化运维的流程图;
图7是本发明实施例提供的一种分布式消息服务方法的流程图;
图8是本发明实施例提供的一种计算机设备的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在本发明实施例中,提供了一种分布式消息服务***,如图1所示,该***包括:
接口装置1、路由装置2、数据存储装置3以及消息引擎装置5,其中,
如图2所示,所述消息引擎装置5包括:
消息引擎集群单元51,所述消息引擎集群单元包括不同类型的开源消息引擎的服务器;
所述数据存储装置3,用于存储业务应用***的验证信息以及消息引擎的配置信息;
所述接口装置1,用于对所述消息引擎集群单元51中所有开源消息引擎的原生接口进行统一封装,生成统一的访问入口,所述访问入口供各业务应用***访问,接收访问的业务应用***的请求;
所述路由装置2,与所述接口装置1、所述数据存储装置3和所述消息引擎装置5连接,用于从所述接口装置接收所述请求,从所述请求中获取业务应用***的验证数据和消息服务的场景信息,根据获取的验证数据和所述数据存储装置已存的业务应用***的验证信息对访问的业务应用***进行验证,根据获取的消息服务的场景信息和所述数据存储装置已存的消息引擎的配置信息确定满足所述请求的消息引擎,在验证成功时,将所述请求转发给所述消息引擎集群单元51中确定出的消息引擎的服务器;
所述消息引擎集群单元51,用于通过确定出的消息引擎的服务器与访问的业务应用***建立连接,并根据所述请求提供消息服务。
由图1所示可知,在本发明实施例中,通过对消息引擎集群单元中所有不同类型的开源消息引擎的原生接口进行统一封装,生成统一的访问入口,即对外提供统一的API供各业务应用***调用,各业务应用***通过该访问入口访问分布式消息服务***中的接口装置,进而路由装置将各业务应用***的请求转发给消息引擎集群单元中根据请求确定出的消息引擎的服务器,最后,确定出的消息引擎的服务器与访问的业务应用***建立连接,并根据请求为业务应用***提供消息服务,即实现了在使用不同类型的开源消息引擎提供消息服务时,只需访问该统一的访问入口即可,无需用户针对每类开源消息引擎的软件进行学习,从而有利于降低用户的学习成本和开发成本,进而有利于分布式消息服务的推广。
具体实施时,上述分布式消息服务***提供了统一的消息服务接口(即上述统一的访问入口),使得所有不同类型的开源消息引擎均可通过该相同的统一接口进行接入。其中,对于统一接口的封装方法主要涵盖了(1)对不同开源消息引擎原生接口的协议和参数进行转换;(2)对消息发送过程中的异常进行捕获和处理;(3)对原生接口统一封装后的性能损耗控制等要求。例如,该统一接口的相关接口使用方法如下表1所示:
表1
具体实施时,上述消息引擎集群单元51中的消息引擎的服务器根据请求为业务应用***提供消息服务,例如,该消息服务可以是消息接收、消息转储、消息发送、消息删除等服务。
具体实施时,上述分布式消息服务***可以部署多个消息引擎装置5,消息引擎装置5可以部署在与业务应用***地理位置相同的地方(本地),也可以部署在与业务应用***地理位置不同的地方(异地),还可以在与业务应用***地理位置相同和不同的地方同时部署消息引擎装置5。若本地的所有消息引擎装置均失效,路由装置2可以将连接导向异地的消息引擎装置,使得消息服务可以跨本异地,实现了本异地的消息服务和数据的高可用,并通过访问路由装置实现业务应用访问透明,可以满足不同业务应用对消息高可用和多副本的需求。
具体实施时,路由装置2从接口装置1接收所述请求后,解析请求中的业务应用***的验证数据和消息服务的场景信息,例如,业务应用***的验证数据可以包括应用名称、用户名、密码等注册信息,消息服务的场景信息可以包括数据量大小、高可用配置、指定的消息引擎的信息等信息,根据获取的验证数据和所述数据存储装置3已存的业务应用***的验证信息对访问的业务应用***进行验证,如获取的验证数据和数据存储装置3已存的业务应用***的验证信息比对成功,即验证成功,在业务应用***和确定出的消息引擎的服务器之间建立连接;如获取的验证数据和数据存储装置3已存的业务应用***的验证信息比对失败,即验证失败,此时,路由装置2返回拒绝建立连接的报文至业务应用***,并告知业务应用***校验失败。
具体实施时,为了实现对消息引擎的监控,在本实施例中,如图2所述,所述消息引擎装置5,还包括:
监控采集单元52,与所述消息引擎集群单元51和所述数据存储装置3连接,用于采集所述消息引擎集群单元中各开源消息引擎的服务器的运行数据,并将所述运行数据发送给所述数据存储装置进行存储。
具体的,对于不同类型的消息引擎,监控采集单元52可以提供相匹配的监控指标和采集程序,并将所有不同类型的消息引擎的运行数据整理成相同类型的监控数据格式,发送给所述数据存储装置3进行存储。其中,不同类型的消息引擎可以包括ActiveMQ,Kafka,RabbitMQ,监控数据格式包括消息属性和消息体,消息属性可以包括消息引擎的类型、CPU使用情况、内存使用情况等,消息体可以包括每个队列/topic的入队/出队消息数、待消费消息等。
具体实施时,为了实现消息引擎的热插拔,在本实施例中,如图1所示,上述分布式消息服务***还包括:管理装置4,其中,如图3所示,所述管理装置4,包括:
监控数据处理单元41,与所述监控采集单元和所述数据存储装置连接,用于将所述运行数据转发给所述数据存储装置进行存储;
自动安装单元42,与所述监控数据处理单元41、所述接口装置和所述数据存储装置连接,用于从所述监控数据处理单元的所述运行数据中获取或通过所述接口装置接收消息引擎安装需求,根据所述消息引擎安装需求从所述数据存储装置中获取未安装的消息引擎的环境信息,并将获取的未安装的消息引擎的环境信息安装在当前有空闲环境的消息引擎的服务器上。
具体的,自动安装单元42可以通过接口装置2接收用户输入的消息引擎安装需求或者从监控数据处理单元41收集的运行数据中的需求信息自动计算判断是否需要安装部署或扩容新的消息引擎,如果需要,即获取到消息引擎安装需求。运行数据中的需求信息包括但不限于TPS、消息持久化、性能容量等。例如,当监控数据处理单元获取到某个消息集群的CPU和内存负载超过80%的阈值,或者TPS超过设定的上限阈值,则自动安装单元会自动为该消息集群创建新Broker节点并添加到该集群中去,并执行消息重平衡。此外,本发明也支持由用户手动通过自动安装单元42触发消息引擎集群的部署(扩容)操作。
具体的,自动安装单元42可以通过在开源消息引擎上封装对应的安装脚本/卸载脚本和监控程序,来实现该种消息引擎在监控数据处理单元41中的插拔。通过自动安装单元42可实现消息引擎的快速部署和扩容以及回收,做到分钟级的部署(扩容)上线使用,有利于实现按需分配,提高资源使用率。业务应用***通过本发明的上述分布式消息服务***可以实现业务解耦、最终一致性、广播、消峰填谷等效果。
具体实施时,为了避免对不同的消息引擎产品采用独立、不同的运维方式,在本实施例中,提供了一种对不同类型的消息引擎采用统一、自动的运维方式,使得实现消息服务全生命周期的运维自动化,有效提高了运维效率,进一步降低消息服务的使用成本。例如,如图3所示,所述管理装置4,还包括:配置中心单元43和故障应急处理单元44,其中,
所述监控数据处理单元41,还用于从所述数据存储装置中获取运行数据的数据阈值,当所述运行数据不满足数据阈值时,通过所述接口装置将所述运行数据发送给业务应用***,并调用所述自动安装单元42、所述配置中心单元43和所述故障应急处理单元44;
所述自动安装单元42,还用于对性能容量不足的消息引擎进行自动扩容或者对故障消息引擎节点进行重装;
所述配置中心单元43,用于对故障的消息引擎节点实例进行配置;例如,配置中心单元43可以负责对消息引擎装置5中的各类消息引擎节点实例进行配置信息采集、展现和集中修改,并将相应的配置数据存放在数据存储装置3中。
所述故障应急处理单元44,用于对故障的消息引擎节点实例进行故障分析和故障处理。
具体实施时,如图1所示,上述分布式消息服务***包括接口装置1、路由装置2、数据存储装置3、管理装置4以及消息引擎装置5,其中,接口装置1与路由装置2、管理装置4相连接,路由装置2与接口装置1、数据存储装置3、消息引擎装置5相连接,数据存储装置3分别与路由装置2、管理装置4相连接,管理装置4与数据存储装置3、接口装置1、消息引擎装置5相连接,消息引擎装置5与路由装置2、管理装置4相连接,该分布式消息服务***的工作流程如图4所示,该流程包括如下步骤:
步骤S401:自动安装单元42根据用户输入的需求或者根据监控数据处理单元41收集的数据中的需求信息自动计算判断是否需要安装部署或扩容新的消息引擎集群,如果需要,则进行新的消息引擎集群的部署/扩容,所述需求信息包括但不限于TPS、消息持久化、性能容量。此外,本发明也支持由用户手动通过自动安装单元42触发消息引擎集群的部署(扩容)操作。
步骤S402:接口装置1接收业务应用***的请求,根据请求中的配置信息,传递业务应用***使用消息服务的场景信息(如数据量大小,高可用配置等信息)或传递指定的消息引擎的信息。
步骤S403:接口装置1根据业务应用***配置的场景信息,判断确定所使用的消息引擎,将包含用户校验数据的报文传输至路由装置2。
步骤S404:路由装置2从数据存储装置3中获取用户校验数据,并与从接口装置1中接收到报文中的用户校验数据进行比对校验。此外,路由装置2还会从数据存储装置3中取出可用的消息引擎集群的环境信息。若校验成功,则进入步骤S406,否则,进入步骤S405,所述用户信息包括用户名和密码。
步骤S405:路由装置2返回拒绝建立连接的报文至业务应用***,告知业务应用***校验失败。
步骤S406:用户校验成功,路由装置2根据上下游应用访问的信息判断确定请求的目标消息引擎,然后将连接转至对应的消息引擎装置5中的目标消息引擎,此时业务应用***与消息引擎装置5中的目标消息引擎建立连接。
步骤S407:业务应用***与消息引擎装置5中的目标消息引擎保持连接建立的状态,此时业务应用***可以往消息引擎集群单元51中的目标消息引擎的服务器发送消息或从消息引擎集群接收消息。若流程结束,业务应用***调用接口装置1中的指令发起连接断开的操作,进入步骤S408。
步骤S408:流程终止。
具体实施时,图5是通过本发明进行消息引擎安装部署或扩容的方法流程图,通过该流程,可实现消息引擎的可插拔和弹性伸缩。具体步骤如下:
步骤S501:自动安装单元42通过接口装置2接收用户请求,启动部署/扩容消息引擎集群的流程(***自动触发或用户手动触发,见步骤S401)。
步骤S502:自动安装单元42从数据存储装置3中获取当前未安装消息引擎集群的环境信息,判断是否有空闲环境可供部署新的消息引擎集群。若目前没有空闲环境,则进入步骤S503,否则,进入步骤S504。
步骤S503:自动安装单元42返回“没有空闲环境,部署/扩容消息引擎集群装置失败”的报文。
步骤S504:自动安装单元42会将消息引擎装置5的安装介质传输至空闲环境上,并执行安装指令。若安装失败,则进入步骤S205,否则,进入步骤S206。
步骤S505:自动安装单元42返回“部署/扩容消息引擎集群装置失败,需要用户人工介入检查环境是否正常”的报文。
步骤S506:自动安装单元42会将成功安装好的消息引擎集群装置的信息存入数据存储装置3中,供步骤S404中的路由装置2选择。
图6是通过本发明进行消息引擎装置的监控和自动化运维的方法流程图,具体步骤如下:
步骤S601:监控采集单元52定时从消息引擎集群单元51中获取消息引擎集群的运行数据,并将所有不同类型的消息引擎的运行数据整理成相同类型的监控数据格式,所述监控数据格式包括消息属性和消息体,其中,消息属性包括消息引擎的类型、CPU使用情况、内存使用情况,消息体包括每个队列/topic的入队/出队消息数、待消费消息。
步骤S602:监控采集单元52将整理好的监控数据发送至监控数据处理单元41。
步骤S603:监控数据处理单元41收集到监控数据后,将监控数据存放在数据存储装置3中,作为存档数据,同时,将监控数据发送至业务应用***,由业务应用***根据业务逻辑判断并进行下一步的处理。
步骤S604:监控数据处理单元41从数据存储装置3中获取到用户在自动安装单元42中定义的运行数据的异常数据阈值,判断当前收集到的监控数据是否正常,若监控数据正常,结束流程,否则,进入步骤S605。
步骤S605:监控数据处理单元41从数据存储装置3中读取针对异常监控数据的运维操作,判断是否有适用当前异常数据的运维操作,若有则进入步骤S606,否则,流程结束。
步骤S606:监控数处理装置41调用自动安装单元42、配置中心单元43或者故障应急处理单元44,向消息引擎装置5发起相应的运维操作。
基于同一发明构思,本发明实施例中还提供了一种分布式消息服务方法,如下面的实施例所述。由于分布式消息服务方法解决问题的原理与分布式消息服务装置相似,因此分布式消息服务方法的实施可以参见分布式消息服务装置的实施,重复之处不再赘述。
图7是本发明实施例的分布式消息服务方法的流程图,如图7所示,该方法包括:
步骤702:对不同类型的开源消息引擎的原生接口进行统一封装,生成统一的访问入口,所述访问入口供各业务应用***访问,接收访问的业务应用***的请求;
步骤704:从所述请求中获取业务应用***的验证数据和消息服务的场景信息,根据获取的验证数据和已存的业务应用***的验证信息对访问的业务应用***进行验证,根据获取的消息服务的场景信息和已存的消息引擎的配置信息确定满足所述请求的消息引擎,在验证成功时,将所述请求转发给确定出的消息引擎的服务器;
步骤706:通过确定出的消息引擎的服务器与访问的业务应用***建立连接,通过确定出的消息引擎的服务器根据所述请求提供消息服务。
在一个实施例中,还包括:
采集各开源消息引擎的服务器的运行数据,并存储所述运行数据。
在一个实施例中,还包括:
从所述运行数据中获取或接收业务应用***输入的消息引擎安装需求,根据所述消息引擎安装需求获取未安装的消息引擎的环境信息,并将获取的未安装的消息引擎的环境信息安装在当前有空闲环境的消息引擎的服务器上。
在一个实施例中,还包括:
获取已存的运行数据的数据阈值,当所述运行数据不满足数据阈值时,将所述运行数据发送给业务应用***;
对性能容量不足的消息引擎进行自动扩容或者对故障消息引擎节点进行重装;
对故障的消息引擎节点实例进行配置;
对故障的消息引擎节点实例进行故障分析和故障处理。
在本实施例中,提供了一种计算机设备,如图8所示,包括存储器802、处理器804及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的分布式消息服务方法。
具体的,该计算机设备可以是计算机终端、服务器或者类似的运算装置。
在本实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的分布式消息服务方法的计算机程序。
具体的,计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本发明实施例实现了如下技术效果:通过对消息引擎集群单元中所有不同类型的开源消息引擎的原生接口进行统一封装,生成统一的访问入口,即对外提供统一的API供各业务应用***调用,各业务应用***通过该访问入口访问分布式消息服务***中的接口装置,进而路由装置将各业务应用***的请求转发给消息引擎集群单元中根据请求确定出的消息引擎的服务器,最后,确定出的消息引擎的服务器与访问的业务应用***建立连接,并根据请求为业务应用***提供消息服务,即实现了在使用不同类型的开源消息引擎提供消息服务时,只需访问该统一的访问入口即可,无需用户针对每类开源消息引擎的软件进行学习,从而有利于降低用户的学习成本和开发成本,进而有利于分布式消息服务的推广。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种分布式消息服务***,其特征在于,包括:接口装置、路由装置、数据存储装置、消息引擎装置以及管理装置,其中,
所述消息引擎装置包括:
消息引擎集群单元,所述消息引擎集群单元包括不同类型的开源消息引擎的服务器;
所述数据存储装置,用于存储业务应用***的验证信息以及消息引擎的配置信息;
所述接口装置,用于对所述消息引擎集群单元中所有开源消息引擎的原生接口进行统一封装,生成统一的访问入口,所述访问入口供各业务应用***访问,接收访问的业务应用***的请求;
所述路由装置,与所述接口装置、所述数据存储装置和所述消息引擎装置连接,用于从所述接口装置接收所述请求,从所述请求中获取业务应用***的验证数据和消息服务的场景信息,根据获取的验证数据和所述数据存储装置已存的业务应用***的验证信息对访问的业务应用***进行验证,根据获取的消息服务的场景信息和所述数据存储装置已存的消息引擎的配置信息确定满足所述请求的消息引擎,在验证成功时,将所述请求转发给所述消息引擎集群单元中确定出的消息引擎的服务器;
所述消息引擎集群单元,用于通过确定出的消息引擎的服务器与访问的业务应用***建立连接,并根据所述请求提供消息服务;
所述消息引擎装置,还包括:监控采集单元,与所述消息引擎集群单元和所述数据存储装置连接,用于采集所述消息引擎集群单元中各开源消息引擎的服务器的运行数据,并将所述运行数据发送给所述数据存储装置进行存储;其中,
所述管理装置,包括:
监控数据处理单元,与所述监控采集单元和所述数据存储装置连接,用于将所述运行数据转发给所述数据存储装置进行存储;
自动安装单元,与所述监控数据处理单元、所述接口装置和所述数据存储装置连接,用于从所述监控数据处理单元的所述运行数据中获取或通过所述接口装置接收消息引擎安装需求,根据所述消息引擎安装需求从所述数据存储装置中获取未安装的消息引擎的环境信息,并将获取的未安装的消息引擎的环境信息安装在当前有空闲环境的消息引擎的服务器上。
2.如权利要求1所述的分布式消息服务***,其特征在于,所述管理装置,还包括:配置中心单元和故障应急处理单元,其中,
所述监控数据处理单元,还用于从所述数据存储装置中获取运行数据的数据阈值,当所述运行数据不满足数据阈值时,通过所述接口装置将所述运行数据发送给业务应用***,并调用所述自动安装单元、所述配置中心单元和所述故障应急处理单元;
所述自动安装单元,还用于对性能容量不足的消息引擎进行自动扩容或者对故障消息引擎节点进行重装;
所述配置中心单元,用于对故障的消息引擎节点实例进行配置;
所述故障应急处理单元,用于对故障的消息引擎节点实例进行故障分析和故障处理。
3.一种分布式消息服务方法,其特征在于,包括:
对不同类型的开源消息引擎的原生接口进行统一封装,生成统一的访问入口,所述访问入口供各业务应用***访问,接收访问的业务应用***的请求;
从所述请求中获取业务应用***的验证数据和消息服务的场景信息,根据获取的验证数据和已存的业务应用***的验证信息对访问的业务应用***进行验证,根据获取的消息服务的场景信息和已存的消息引擎的配置信息确定满足所述请求的消息引擎,在验证成功时,将所述请求转发给确定出的消息引擎的服务器;
通过确定出的消息引擎的服务器与访问的业务应用***建立连接,通过确定出的消息引擎的服务器根据所述请求提供消息服务;
所述方法还包括:采集各开源消息引擎的服务器的运行数据,并存储所述运行数据;
从所述运行数据中获取或接收业务应用***输入的消息引擎安装需求,根据所述消息引擎安装需求获取未安装的消息引擎的环境信息,并将获取的未安装的消息引擎的环境信息安装在当前有空闲环境的消息引擎的服务器上。
4.如权利要求3所述的分布式消息服务方法,其特征在于,还包括:
获取已存的运行数据的数据阈值,当所述运行数据不满足数据阈值时,将所述运行数据发送给业务应用***;
对性能容量不足的消息引擎进行自动扩容或者对故障消息引擎节点进行重装;
对故障的消息引擎节点实例进行配置;
对故障的消息引擎节点实例进行故障分析和故障处理。
5.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求3至4中任一项所述的分布式消息服务方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求3至4中任一项所述的分布式消息服务方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910342370.6A CN110138753B (zh) | 2019-04-26 | 2019-04-26 | 分布式消息服务***、方法、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910342370.6A CN110138753B (zh) | 2019-04-26 | 2019-04-26 | 分布式消息服务***、方法、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110138753A CN110138753A (zh) | 2019-08-16 |
CN110138753B true CN110138753B (zh) | 2021-07-23 |
Family
ID=67575171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910342370.6A Active CN110138753B (zh) | 2019-04-26 | 2019-04-26 | 分布式消息服务***、方法、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110138753B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019228568A2 (en) * | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
CN112118282B (zh) * | 2020-07-29 | 2022-05-13 | 苏州浪潮智能科技有限公司 | 一种基于RabbitMQ集群的服务节点弹性伸缩方法 |
CN115391448B (zh) * | 2022-10-08 | 2023-02-03 | 数兑科技(杭州)有限公司 | 一种智能化用数方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6990514B1 (en) * | 1999-09-03 | 2006-01-24 | Cisco Technology, Inc. | Unified messaging system using web based application server for management of messages using standardized servers |
CN101848239B (zh) * | 2010-05-11 | 2012-11-28 | 中国电子科技集团公司第二十八研究所 | 一种高时效性的分布式服务集成调用*** |
CN102123158A (zh) * | 2011-04-11 | 2011-07-13 | 深圳市同洲软件有限公司 | 一种实现网络数据处理的方法和*** |
US9021091B2 (en) * | 2012-10-15 | 2015-04-28 | International Business Machines Corporation | Transaction middleware based application level transaction instance tracking across a composite application |
CN104660547B (zh) * | 2013-11-18 | 2019-06-28 | 北京四维图新科技股份有限公司 | 一种实现远距离通信的服务平台 |
RU2636112C1 (ru) * | 2014-02-26 | 2017-11-20 | Хуавэй Текнолоджиз Ко., Лтд. | Объект службы управления интерфейсом, объект службы функций и способ управления элементами |
CN106657232A (zh) * | 2016-09-29 | 2017-05-10 | 山东浪潮商用***有限公司 | 一种分布式服务器架构及其服务方法 |
CN107070782A (zh) * | 2017-05-02 | 2017-08-18 | 山东浪潮通软信息科技有限公司 | 一种基于消息队列可扩展的接口集成方法、服务器及*** |
-
2019
- 2019-04-26 CN CN201910342370.6A patent/CN110138753B/zh active Active
Non-Patent Citations (1)
Title |
---|
Web服务安全机制研究与实现;田强;《中国优秀硕士学位论文全文数据库(电子期刊)》;20120315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110138753A (zh) | 2019-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3648401B1 (en) | Method, device, and computer readable storage medium for managing network slice | |
CN114124451B (zh) | 一种物联网设备数据处理方法、***及计算机存储介质 | |
CN110138753B (zh) | 分布式消息服务***、方法、设备及计算机可读存储介质 | |
CN107590072B (zh) | 一种应用开发和测试的方法和装置 | |
CN107800565B (zh) | 巡检方法、装置、***、计算机设备和存储介质 | |
US9692846B2 (en) | System, device and method for providing push service using feedback message | |
CN111711697A (zh) | 消息推送方法、装置、设备及存储介质 | |
CN111061491A (zh) | 一种基于lxc容器技术的边缘计算网关管理***及方法 | |
CN111221793B (zh) | 数据挖掘方法、平台、计算机设备及存储介质 | |
CN109542659A (zh) | 应用多活方法、设备、数据中心集群及可读存储介质 | |
CN113596150B (zh) | 消息推送方法、装置、计算机设备和存储介质 | |
CN113626286A (zh) | 多集群实例处理方法、装置、电子设备及存储介质 | |
CN111666145A (zh) | 消息队列的消息处理方法、***和计算机设备 | |
CN113794652A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN103677983A (zh) | 应用的调度方法及装置 | |
CN112583630B (zh) | 设备管理方法、装置、***、设备及存储介质 | |
CN113965576B (zh) | 基于容器的大数据采集方法、装置、存储介质和设备 | |
CN111510480A (zh) | 一种请求发送方法、装置以及第一服务器 | |
CN113360386B (zh) | 交换芯片驱动测试方法、装置、电子设备和存储介质 | |
CN113553139A (zh) | 容器云环境下的混合多云管理方法、***、设备及介质 | |
CN106790354B (zh) | 一种防数据拥堵的通信方法及其装置 | |
CN111831402B (zh) | 用于管理软件功能的方法、设备和计算机程序产品 | |
CN111756800A (zh) | 一种处理突发流量的方法和*** | |
CN104348646A (zh) | 配置数据处理方法、装置及*** | |
US9491132B2 (en) | System and method for providing push service for reducing network loads |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |