基于动态优先数调度算法的消息中间件技术研究

2012-08-07 08:20翟小静
网络安全技术与应用 2012年10期
关键词:等待时间队列级别

翟小静

咸阳师范学院 陕西 712000

0 引言

消息中间件(Message Oriented Middleware,MOM),消息中间件是专门处理通信逻辑的中间件,它向上为其它应用元素屏蔽通信的复杂性,通过提供通用、一致、简单的应用接口,为程序员隐藏通信协议的异构性和复杂性,从而大大简化了分布式环境中的编程;向下为用户解决各种网络问题,如网络资源的命名、事务管理、安全性、动态资源管理和查找定位等。

1 消息中间件中动态优先数算法设计

1.1 消息优先级

消息中间件提供消息的优先级别,系统中提供五种级别的优先级,按级别从低到高依次分为 VERY-LOW-MSGPRIORITY、LOW-MSG-PRIORITY、NORMAL-MSG-PRIORITY、HIGH-MSG-PRIORITY、VERY-HIGH-MSG-PRIORITY。优先级高的消息插入到发送、接收队列的前部,得到优先处理。优先级别只适用于普遍消息和用户自定义消息,系统消息和主题消息不是通过用户消息发送队列发送,因而没有优先级的区别。

1.2 消息队列中动态优先数算法设计

通过上一节对政务信息优先级的分析,在现有消息中间件优先级确定的基础上引入动态优先数调度算法,克服现有的优先数法中优先值不能改变的缺陷,动态优先数调度法使得消息的优先数在执行过程中可以根据情况而改变。在政务处理过程中进行动态优先数的设置进行消息调度更好的体现政府部门的公平效率性。在消息中间件中的消息优先数确定上采取动态优先数确定的方式。并且消息队列采用多级队列的排列方式。下面是基于动态优先数调度算法的消息中间件算法。

对发送方和接收方的消息按照不同的级别设置几个队列,每个优先数级别设置一个队列,每隔一段时间对消息队列中的消息存入时间进行判断,设定一个时间数,对超越一定时间的消息的优先级进行更改。具体的设计流程如图1所示。

图1 动态优先数算法设计模型

2 算法验证及结果分析

基于动态优先数的消息中间件设计是对现有的消息中间件的静态优先级的改进。动态优先级设计与静态优先级设计相比有很大的优势。其突出优点在于动态优先级的设定体现了消息事务执行的公平性。以政府信息管理为例,政府部门有着不同的级别,那么上级所下达的任务,同级部门所传送的消息,公众在部门所办理的业务这三种消息的级别应该有不同的设置,在消息众多的情况下经过一段长的时间,低优先级的消息不被处理,等待的时间就比较的长。因而不能充分体现政府部门公平,公正的原则。采用动态优先级设置,设定一个时间间隔,当消息的等待时间超越一定的时间间隔后就给该消息的优先级升一个级别。因而动态优先数的设置即照顾到优先级别的高低又考虑到等待时间的长短。下面对静态优先数执行效果和动态优先数执行效果差别做简单的测试分析。

设五个优先级,分别为1,2,3,4,5。假设1的优先级最高,5的优先级最低。用javascript语言生成一百个随机数代表现实情况中各优先级消息发送来的顺序。具体的代码与产生的随机数如下:

下面的程序用于产生1-5的随机数:

连续一百次产生1-5的随机数如下所示:

5545543222

1525242223

2134424335

2113243531

4343415552

4433112325

1552331555

1354452421

4311233523

1112115415

每一个随机数都代表这一级别消息传送到接收者的消息队列,规定消息队列的容量为十条,每取一条消息会再进一条消息。按照静态优先取消息执行顺序如下:

2122223222

3213442433

4211324343

1434341455

2443311232

5155233155

5135445242

1431123352

3111211541

5555555555

规定每处理一个消息花费时间为1小时,第一次取消息时消息队列中就有十条消息,每取走一条消息,都有另外一条消息补充进来。规定在消息队列中的消息每等待5小时就提升一个优先级,对上数一级数据进行测试得到如表1的比较数据。

表1 态优先数与动态优先数等待时间分析

从表1的结果显示得知利用动态优先数设置,消息的平均等待处理时间和最长的等待处理时间都较静态优先数设置短。

以上分析数据是消息队列容量为十条消息的情况下,表2的数据为水息队列容量为二十条消息的情况,对静态优先数设置和动态优先数设置的比对。

表2 静态优先数与动态优先数等待时间分析

若取动态优先数设置上面的分析均是以5小时等待时间为提升一个优先级的标准,表3我们对上面的数据进行更进一步的分析,分别用五小时和三小时为提升优先级的标准进行比对分析。

表3 静态优先数与动态优先数等待时间分析

从表 3的结果可知采用动态优先数设置时消息队列设置以及提升优先级的等待时间设置对消息提取平均等待时间,以及最长的等待时间的影响。用柱型图表示如图2、图3所示。

图2 消息队列容量为十的动态静态优先数时间比较图

图3 动态优先数不同时间设置结果比较

3 总结与展望

本文主要提出一种基于动态优先数的消息中间件设计算法,并用测试数据进行了验证分析,得出分析结果使用动态优先数调度算法进行消息中间件中消息队列设计使消息等待平均时间变短、消息队列中的消息最长等待时间变短。兼顾了效率和公平的原则。

进一步研究的重点是把基于动态优先数调度算法的消息中间件技术加以应用。

[1] 李建峰,许舒人,马建刚.面向大规模数据集成消息中间件系统设计实现[J].计算机工程与设计.2008.

[2] 李辉,李绪志.基于消息分类的复合模式消息中间件研究.软件时空[J].2007.

[3] Eugster P T,Pascal A Felber,Rachid Guerraoui,et al.The many faces of publish/subscribe[J].ACM Computing Surveys.2003.

[4] 胡雅庆.面向消息中间件的设计与实现.计算机与现代化[J].200103.

[5] 徐远芳.消息中间件在WEB服务中的应用及面向WEB服务的消息中间件设计[J].广西大学硕士学位论文.2004.

[6] 王旭新.消息中间件研究与实现[J].南京理工大学硕士论文.2005.

猜你喜欢
等待时间队列级别
给学生适宜的等待时间
——国外课堂互动等待时间研究的现状与启示
队列里的小秘密
基于多队列切换的SDN拥塞控制*
在队列里
级别分明
迈向UHD HDR的“水晶” 十万元级别的SIM2 CRYSTAL4 UHD
新年导购手册之两万元以下级别好物推荐
丰田加速驶入自动驾驶队列
你是什么级别的
意大利:反腐败没有等待时间