一种分布式消息队列中间件的制作方法

文档序号:9435956阅读:355来源:国知局
一种分布式消息队列中间件的制作方法
【技术领域】
[0001 ] 本发明属于服务器内部数据处理领域,具体涉及一种分布式消息队列中间件。
【背景技术】
[0002]计算机系统软件具有大量的后台任务执行管理,设备和服务器间的消息通讯需要稳定可靠高效的执行方法。传统的方法是用户在操作时需要等待长时间的执行过程才能得到结果,在该过程中往往会因为各种原因导致执行失败而使得用户不得不再一次从新操作;用户的这个操作过程同时也是无序不可控的,在执行过程中无疑加大了服务器的压力。
[0003]也就是说传统的方法是一个同步过程,每次都需要等待上一步操作完成后才能进入下一步操作,如果操作的数据太大或者服务器执行效率低下,用户需要等待很长的响应时间才能得到结果,甚至请求超时导致执行失败无法进行后续工作;同时如此长时间的执行过程会占用服务器CPU和内存导致系统整体效能下降,影响了更多用户的使用。

【发明内容】

[0004]为了克服上述技术问题,本发明的目的为了提供一种异步处理的分布式消息队列中间件。
[0005]本发明采用的技术方案是:
一种分布式消息队列中间件,包括消息队列、队列管理模块、消息转发模块和分布式路由,该消息队列用于存储用户操作时提交的消息以等待处理,队列管理模块用于创建队列以及管理队列的序号和优先级,并根据队列的序号和优先级控制消息转发模块转发队列中的消息,消息转发模块所转发队列中的消息经分布式路由分配给空闲的目标服务器进行消息处理。
[0006]进一步,所述消息队列采用反射技术将序列化的消息保存。
[0007]进一步,所述消息队列为基于.NET和SQL server平台服务端中所引用一个动态链接库。
[0008]进一步,所述消息队列存储于缓存数据库以供调用。
[0009]进一步,当触发队列执行时,调用缓存数据库中的消息队列和数据,并进行反序列化数据和队列、反射队列操作,然后调用系统功能进行处理并返回调用结果,最后根据调用结果更新缓存数据库中的消息队列和数据。
[0010]本发明的有益效果是:
本发明由于使用的异步处理,用户提交操作请求后,消息队列作为消息容器保存了所有的消息并做了有序管理,后台根据队列的序号和优先级分配不同的服务器或线程各自运行,因为所有操作已经分发到负载服务器上,所以用户在使用系统软件时不会受到其他用户的操作影响。如果队列执行过程中发生意外,由于消息队列已经保存了整个信息,可以在恢复后重新执行,保障了操作的可恢复性。即使服务器损坏,消息队列可以在其他负载服务器上运行,不影响系统的整体运行。本发明使用反射技术将序列化的消息保存在队列,不与系统模块直接引用,把队列功能都封装在消息中,达到了低耦合高内聚的目的;同时使得扩展更加容易,各模块只需引用消息队列中间件并实现接口,就可以增加新功能。
【附图说明】
[0011]下面结合附图对本发明的【具体实施方式】做进一步的说明。
[0012]图1是本发明消息队列中间件的工作原理图;
图2是本发明的第一是实施例示意图;
图3是本发明的第一是实施例示意图;
图4是本发明的第一是实施例示意图。
【具体实施方式】
[0013]参考图1所示,为本发明的一种分布式消息队列中间件,包括消息队列、队列管理模块、消息转发模块和分布式路由,该消息队列用于存储用户操作时提交的消息以等待处理,队列管理模块用于创建队列以及管理队列的序号和优先级,并根据队列的序号和优先级控制消息转发模块转发队列中的消息,消息转发模块所转发队列中的消息经分布式路由分配给空闲的目标服务器进行消息处理,,降低主服务器的负载,实现负载均衡。
[0014]所述消息队列采用反射技术将序列化的消息保存,所述消息队列存储于缓存数据库以供调用,当触发队列执行时,调用缓存数据库中的消息队列和数据,并进行反序列化数据和队列、反射队列操作,然后调用系统功能进行处理并返回调用结果,最后根据调用结果更新缓存数据库中的消息队列和数据。
[0015]所述消息队列为基于.NET和SQL server平台服务端中所引用一个动态链接库(DLL),新增队列只需另外添加处理过程即可,不需要改变代码,不需要调节参数,非常有利与功能扩展。仅需要在项目中导入消息队列中间件的引用,不用客户端和服务端即可完成所有安装。
[0016]如图2所不,为本发明的基础实施例:
A:实例继承接口,实现接口定义的处理过程;
B:实例对象转化成消息文本加入队列等待调度中心分配执行服务器,结束实例操作返回结果给用户;
C:消息调度中心根据队列加入顺序和优先级分配实例对象至负载较低的服务器;
D:接收实例的服务器对象化实例,执行实例的处理过程。
[0017]如图3所示,为本发明的第二实施例,数据同步消息队列:
A:平台数据变更;
B:同步实例继承接口,实现接口定义的处理过程,同步实例对象转化成消息文本加入队列等待调度中心分配执行服务器。结束实例操作返回结果给用户;
C:消息调度中心根据队列加入顺序和优先级分配同步实例对象至负载较低的服务器;
D:接收实例的服务器对象化实例,执行实例的处理过程,调用目标服务器的webservice同步数据。
[0018]如图4所示,为本发明的第三实施例,微信消息推送队列: A:微信消息推送;
B:推送实例继承接口,实现接口定义的处理过程,推送实例对象转化成消息文本加入队列等待调度中心分配执行服务器。结束实例操作返回结果给用户;
C:消息调度中心根据队列加入顺序和优先级分配同步实例对象至负载较低的服务器;
D:接收实例的服务器对象化实例,执行实例的处理过程,调用微信服务器的开放接口提交推送内容信息。
[0019]如上所述,本发明就是提供了一个有序可控的消息队列,对这些操作进行管理,控制任务执行的优先级,通过分布式路由实现多机负载以降低服务器的压力,从而实现前端用户无需最终执行结果,大大的提升用户的体验度,使得服务器得到更大的利用价值。
[0020]以上所述仅为本发明的优先实施方式,本发明并不限定于上述实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。
【主权项】
1.一种分布式消息队列中间件,其特征在于:包括消息队列、队列管理模块、消息转发模块和分布式路由,该消息队列用于存储用户操作时提交的消息以等待处理,队列管理模块用于创建队列以及管理队列的序号和优先级,并根据队列的序号和优先级控制消息转发模块转发队列中的消息,消息转发模块所转发队列中的消息经分布式路由分配给空闲的目标服务器进行消息处理。2.根据权利要求1所述的一种分布式消息队列中间件,其特征在于:所述消息队列采用反射技术将序列化的消息保存。3.根据权利要求1所述的一种分布式消息队列中间件,其特征在于:所述消息队列为基于.NET和SQL server平台服务端中所引用一个动态链接库。4.根据权利要求1所述的一种分布式消息队列中间件,其特征在于:所述消息队列存储于缓存数据库以供调用。5.根据权利要求4所述的一种分布式消息队列中间件,其特征在于:当触发队列执行时,调用缓存数据库中的消息队列和数据,并进行反序列化数据和队列、反射队列操作,然后调用系统功能进行处理并返回调用结果,最后根据调用结果更新缓存数据库中的消息队列和数据。
【专利摘要】本发明公开了一种分布式消息队列中间件,包括消息队列、队列管理模块、消息转发模块和分布式路由,该消息队列用于存储用户操作时提交的消息以等待处理,队列管理模块用于创建队列以及管理队列的序号和优先级,并根据队列的序号和优先级控制消息转发模块转发队列中的消息,消息转发模块所转发队列中的消息经分布式路由分配给空闲的目标服务器进行消息处理。消息队列中间件对这些操作进行管理,控制任务执行的优先级,通过分布式路由实现多机负载以降低服务器的压力,从而实现前端用户无需最终执行结果,大大的提升用户的体验度,使得服务器得到更大的利用价值。
【IPC分类】H04L29/08, H04L12/863
【公开号】CN105187327
【申请号】CN201510502177
【发明人】余敬龙
【申请人】广东能龙教育股份有限公司
【公开日】2015年12月23日
【申请日】2015年8月14日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1