论文部分内容阅读
随着分布式与云计算技术的快速发展,对分布式系统的规模性和动态拓扑性提出了更高的要求。要求分布式系统的所有参与者能够具有良好的动态性和松耦合特性。而发布订阅系统则适应了这种需求,它与传统的通信模型(比如共享空间、RPC/RMI、消息传递等等)相比具有匿名、异步以及多对多通信的特点,支持时间流、空间流和控制流的完全解耦,因而受到了极大的关注。许多云平台中都加入了发布订阅服务。这样,我们只需要把消息发送到云端,而后,完全可以依靠基于云的服务把消息匹配并分散到各个订阅者中。我们知道,云平台中的数据规模是非常巨大的,对于些大型的企业,每天都有数以亿计的消息传递,因此,如何提升发布订阅系统的消息投递性能,并且保证消息的可靠性投递,是一个十分紧迫且意义重大的课题。关于提升消息传递的性能,目前国内外已经有一些研究,但更侧重于研究传输网络的路由算法以及可靠性。也有一些关于消息实时性的研究,如基于优先级队列和最短路径树的模型算法,但它们不能同时保证消息传递的可靠性,并且也缺乏对系统终端的关注。本文重点研究如何在保证消息可靠投递的前提下提升发布订阅系统中消息投递的性能。我们调研了提升消息投递性能和可靠性的研究现状,最终发现订阅者的消费速率、服务端的负载均衡策略以及消息的推/拉模型选择,是几个非常重要的影响因素。现在的消息中间件,无论是发布订阅系统还是消息队列模型,很少可以把上述影响因素结合起来。因此,我们把推送消息模型,消费者集群和一种更细粒度的负载均衡策略集成在一起,并辅以一系列的可靠性保证策略,如客户端流量控制、消息重传、服务端的消息确认,并最终在一个较成熟的发布订阅系统Hedwig中得以实现。PlanetLab上的测试结果也反映了系统在消息投递性能这一方面得到了有效的提升,消息的可靠性也得以保障。