本发明涉及通信技术领域,尤其涉及一种云计算环境下可靠消息的通信装置及方法。
背景技术:
在云计算管理平台中,系统的分布性,异构性,自治性日趋明显。受到网络带宽和系统复杂性的限制,应用系统间的通信在一定程度上受到限制。在大规模分布式环境当中,消息通信机制为分布式系统间的多对多的异步通信提供了有效的解决方案。
消息队列是驱动分布式应用系统中的核心组件,发布者通过发布消息到消息服务器,订阅者通过从消息服务器上订阅消息从而驱动相关模块的运转。目前市场是有很多开源的消息中间件,比如RabbitMQ、ActiveMQ和ZeroMQ都是功能强大的消息中间件,提供高性能可靠的消息路由和转发功能。
消息的传输需要可靠性的保证,避免消息在传输过程中丢失导致的资源状态不一致的情况。基本所有的消息中间件都有相关机制保证消息的可靠送达。比如a).每个消息分配一个惟一标识符(UUID),从而对每条消息进行跟踪和确认。b).消息中包含校验位,从而对消息进行完整性校验。c).确认重传机制,每发一个消息,必须有相关的确认消息返回,若没有收到确认消息,重新发布消息。d).消息发送和接收的事务,消息发布到消息服务器的过程和从消息服务器接收消息都放到相关的事务中,若事务失败,回滚消息的状态,分析消息失败原因,尝试重新发送或接收消息。
以上可靠的机制是针对消息本身的普适的消息传送方式,但特殊场景下,可靠性不能得到有效保证,比如消息量瞬时量过多,服务器突然断电等意外情况可能导致消息的丢失。
技术实现要素:
鉴于上述的分析,本发明旨在提供一种云计算环境下可靠消息的通信装置及方法,用完全或者至少部分地解决上述问题。
为解决上述问题,本发明主要是通过以下技术方案实现的:
本发明一方面提供了一种云计算环境下可靠消息的通信装置,该装置包括:
消息服务器,用于接收消息发送者的消息,转发一份消息备份到规则引擎,根据接收者的接收规则和消息服务器的转发规则,把消息推送给相关的消息接收者;
规则引擎,用于对符合规则的消息按照预设分类规则对所述消息进行分类处理,将分类处理后的消息转发给分析引擎,并根据分析引擎发来的对消息的分析结果,将所述消息匹配相关规则,使用符合消息服务器配置规则的设置来对所述消息服务器进行动态调整;
分析引擎,用于对所述规则引擎发送来的消息进行分析,并将分析结果反馈给规则引擎。
进一步地,所述消息服务器还用于,通过消息队列维护着消息发布者和消息接收者之间的连接,通过消息主题维护消息分发的结构,根据预设的消息过滤规则过滤出要发布给接收者的消息。
进一步地,所述规则引擎还用于,对符合规则的消息按照预设的消息类型对所述消息进行分类处理,所述消息类型包括资源生命周期消息、异常警告消息、通知和应答消息和用户操作消息中的一种或多种。
进一步地,所述分析引擎,用于对所述规则引擎发送来的消息进行分析,判断所述消息是警告消息、导致系统崩溃的消息或者需要人工干预的消息,对不同的消息分类分析整理,并将分析结果反馈给规则引擎。
进一步地,规则引擎,用于在资源生命周期消息过多,根据相关规则配置所述消息服务器更多的资源。
本发明另一方面还提供了一种云计算环境下可靠消息的通信方法,该方法包括:
消息服务器接收消息发送者的消息,转发一份消息备份到规则引擎,根据接收者的接收规则和消息服务器的转发规则,把消息推送给相关的消息接收者;
规则引擎对符合规则的消息按照预设分类规则对所述消息进行分类处理,将分类处理后的消息转发给分析引擎,并根据分析引擎发来的对消息的分析结果,将所述消息匹配相关规则,使用符合消息服务器配置规则的设置来对所述消息服务器进行动态调整;
分析引擎对所述规则引擎发送来的消息进行分析,并将分析结果反馈给规则引擎。
该方法还包括:所述消息服务器通过消息队列维护着消息发布者和消息接收者之间的连接,通过消息主题维护消息分发的结构,根据预设的消息过滤规则过滤出要发布给接收者的消息。
进一步地,所述规则引擎对符合规则的消息按照预设分类规则对所述消息进行分类处理,具体包括:
所述规则引擎对符合规则的消息按照预设的消息类型对所述消息进行分类处理,所述消息类型包括资源生命周期消息、异常警告消息、通知和应答消息和用户操作消息中的一种或多种。
进一步地,所述分析引擎对所述规则引擎发送来的消息进行分析,并将分析结果反馈给规则引擎,具体包括:
所述分析引擎,用于对所述规则引擎发送来的消息进行分析,判断所述消息是警告消息、导致系统崩溃的消息或者需要人工干预的消息,对不同的消息分类分析整理,并将分析结果反馈给规则引擎。
进一步地,所述规则引擎在资源生命周期消息过多,根据相关规则配置所述消息服务器更多的资源。
本发明有益效果如下:
本发明根据消息服务器中消息发送、转发以及发布等情况统计相关信息,匹配消息规则引擎配置,自动配置消息服务器,使消息服务在保证稳定性的前提下性能最优,从而有效解决了在消息过载,意外断电等情况下,消息服务器中消息丢失,服务器异常等不稳定因素,而导致的消息发送的可靠性低的问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1为本发明实施例的一种云计算环境下可靠消息的通信装置的结构示意图;
图2为本发明实施例的消息队列的示意图;
图3为本发明实施例的消息主题的示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。为了清楚和简化目的,当其可能使本发明的主题模糊不清时,将省略本文所描述的器件中已知功能和结构的详细具体说明。
本发明提供了一种云计算环境下可靠消息的通信装置及方法,本发明根据消息服务器中消息发送、转发以及发布等情况统计相关信息,匹配消息规则引擎配置,自动配置消息服务器,使消息服务在保证稳定性的前提下性能最优。本发明成功应用到Cloudview云计算管理平台和实验平台的计算平台上。以下结合附图以及几个实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
本发明实施例提供了一种云计算环境下可靠消息的通信装置,参见图1,该装置包括:
消息服务器,用于接收消息发送者的消息,转发一份消息备份到规则引擎,根据接收者的接收规则和消息服务器的转发规则,把消息推送给相关的消息接收者;
比如有四个消息:1.虚拟机创建的消息,2.虚拟机销毁的消息,3.虚拟网络创建的消息,4.虚拟网络销毁的消息,通过定义接收规则:只接收虚拟机的消息,那么对应的转发规则只转发消息1和消息2,或者,定义接收规则:只接收实体创建的消息,那么对应的转发规则只转发消息1和消息3。
规则引擎,用于对消息的转发规则按照预设分类进行分类处理,将分类处理后的结果传递给分析引擎,并根据分析引擎发来的对消息的分析结果,将所述消息匹配转发规则,使用符合消息服务器配置规则的设置来对所述消息服务器进行动态调整;
分析引擎,用于对所述规则引擎发送来的消息的转发规则进行分析,并将分析结果反馈给规则引擎。
本发明根据消息服务器中消息发送、转发以及发布等情况统计相关信息,匹配消息规则引擎配置,自动配置消息服务器,使消息服务在保证稳定性的前提下性能最优,从而有效解决了在消息过载,意外断电等情况下,消息服务器中消息丢失,服务器异常等不稳定因素,而导致的消息发送的可靠性低的问题。
具体实施时,本发明实施例所述消息服务器通过消息队列维护着消息发布者和消息接收者之间的连接,通过消息主题维护消息分发的结构,根据预设的消息过滤规则过滤出要发布给接收者的消息。
本发明实施例所述规则引擎对符合规则的消息按照预设的消息类型对所述消息进行分类处理,所述消息类型包括资源生命周期消息、异常警告消息、通知和应答消息和用户操作消息中的一种或多种。
本发明实施例所述分析引擎对所述规则引擎发送来的消息进行分析,判断所述消息是警告消息、导致系统崩溃的消息或者需要人工干预的消息,对不同的消息分类分析整理,并将分析结果反馈给规则引擎。
本发明实施例的规则引擎在资源生命周期消息过多,根据相关规则配置所述消息服务器更多的资源。
下面将通过一个具体的例子对本发明所述的装置进行详细的解释和说明:
消息通信主要有五个模块组成:消息发送者,消息接收者,消息服务器,规则引擎,分析引擎。
消息在各个模块的流转,消息发送者发布消息到消息服务器,同时消息服务器转发一份消息备份到规则引擎,规则引擎对符合规则消息进行分类处理,之后转发给分析引擎,分析引擎把分析结果反馈给规则引擎,规则引擎匹配相关规则,使用符合服务器配置规则的设置来动态调整消息服务器。
2.消息规则引擎
规则引擎中的规则主要包括对消息的分类处理,包括,资源生命周期消息,异常警告消息,通知和应答消息,用户操作消息。
3.消息统计分析算法
消息统计包括总体统计:5秒内消息发送数量,消息分发数量等
针对规则引擎中对消息的分类,使用不同的分析策略,详情见消息规则引擎部分。
具体来说,本发明主要包含以下几方面的内容:
消息服务器是一个接收并转发消息的容器,所有的消息都发往消息服务器(Broker),消息服务器根据接收者的接收规则和消息服务器的转发规则,把消息推送给相关的消息接收者。
消息服务器维护相关着消息转发相关的数据结构,如图2和3所示,消息服务器中包括:
消息队列(Message Queue)维护着消息发布者和消息接收者两者的连接,从而实现消息接收者和发布者的点对点通信。这种类型的通信方式能够保证数据顺序到达,由于是点对点通信,效率更高。
消息主题(Message Topic)维护着消息分发的结构,消息接收者把要接收的消息过滤器放到服务器上,服务器根据消息过滤器过滤出要发布给接收者的消息,一个接收者可以接收多个发布者的消息,一个消息可以分发给多个接收者。
规则引擎负责处理消息转发逻辑和服务器动态配置逻辑,前者根据逻辑规则把消息推送给相关的接收者,所以消息转发的逻辑规则和相关的业务流程相关,哪些业务系统需要知道哪些消息,什么情况下需要知道哪些消息等,这些规则需要在系统上线后根据业务进行初始配置;后者根据消息分析引擎,实时分析消息转发数据,数据反馈给规则引擎,规则引擎根据消息服务器业务规则动态配置消息服务器,使消息服务器时刻保持在最稳定的运行状态。
消息转发逻辑规则:转发给分析引擎的规则
转发给分析引擎的规则安装消息场景对消息分类,包括:
资源生命周期消息:把资源申请,创建,释放,删除等消息转发给分析引擎的资源生命周期模块,统计哪些资源申请的比较频繁,哪些资源释放的比较频繁,或者统计不同资源的周期长短。
系统异常警告消息:根据系统能够警告级别对信息进行分类,判断哪些系统消息是警告,哪些可能导致崩溃,哪些需要人工干预。对不同的消息分类分析整理,进一步转发给系统告警模块,从而采取相应的措施,比如自动扩展虚拟机的计算能力,或者联系管理员限制资源使用。
通知和应答消息:通知是有对接收者有针对性的发送消息,等待接收者接收到消息并发出确认通知后,消息发送者才能进一步完成后续的工作。通过这种机制,不同系统之间实现了同步机制。分析引擎自动匹配通知和应答消息,并删除过时的应答消息,保证系统同步过程不至于卡死。
用户操作消息:不管用户在系统中进行任何操作,都要发送相关的消息,以记录用户行为。分析引擎通过对用户行为上下文进行分析,对用户操作不当的行为做出相应提示或警告。
消息接收者委托给服务器的接收规则:
消息接收者设置一个消息过滤器,过滤掉接收者不关心的消息,从而更高效的接收消息。消息接收者把消息的过滤条件发送给规则引擎,规则引擎根据消息过滤器的设置配置服务器,过滤器的语法为:
规则引擎规则预设规则,把不同的消息分别发送的不同的分析引擎中来,针对不同的消息类型进行分析
比如系统异常告警消息,根据系统能够警告级别对信息进行分类,判断哪些系统消息是警告,哪些可能导致崩溃,哪些需要人工干预。对不同的消息分类分析整理,进一步转发给系统告警模块,从而采取相应的措施,比如自动扩展虚拟机的计算能力,或者联系管理员限制资源使用。
动态配置消息服务器:
规则引擎根据相关的规则来配置服务器,比如当消息数据量达到60万条每秒的时候,分配300M内存给消息服务器,当消息数据量达到120万条每秒的时候,分配500M内存给消息服务器。
当系统自动申请大量资源的时候,系统会发送大量资源生命周期消息,系统分析器根据资源生命周期消息的分析模块进行统计分析,根据分析结果反馈给规则引擎,规则引擎发现资源生命周期消息过多,规则引擎根据相关规则配置消息服务器更多的资源以满足消息服务器的需求。
本发明实施例还提供了一种云计算环境下可靠消息的通信方法,该方法包括:
消息服务器接收消息发送者的消息,转发一份消息备份到规则引擎,根据接收者的接收规则和消息服务器的转发规则,把消息推送给相关的消息接收者;
规则引擎对符合规则的消息按照预设分类规则对所述消息进行分类处理,将分类处理后的消息转发给分析引擎,并根据分析引擎发来的对消息的分析结果,将所述消息匹配相关规则,使用符合消息服务器配置规则的设置来对所述消息服务器进行动态调整;
分析引擎对所述规则引擎发送来的消息进行分析,并将分析结果反馈给规则引擎。
具体实施时,本发明实施例的所述消息服务器通过消息队列维护着消息发布者和消息接收者之间的连接,通过消息主题维护消息分发的结构,根据预设的消息过滤规则过滤出要发布给接收者的消息。
具体实施时,本发明实施例的所述规则引擎对符合规则的消息按照预设分类规则对所述消息进行分类处理,具体包括:
所述规则引擎对符合规则的消息按照预设的消息类型对所述消息进行分类处理,所述消息类型包括资源生命周期消息、异常警告消息、通知和应答消息和用户操作消息中的一种或多种。
具体实施时,本发明实施例的所述分析引擎对所述规则引擎发送来的消息进行分析,并将分析结果反馈给规则引擎,具体包括:
所述分析引擎,用于对所述规则引擎发送来的消息进行分析,判断所述消息是警告消息、导致系统崩溃的消息或者需要人工干预的消息,对不同的消息分类分析整理,并将分析结果反馈给规则引擎。
具体实施时,本发明实施例的所述规则引擎在资源生命周期消息过多,根据相关规则配置所述消息服务器更多的资源。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。