论文部分内容阅读
随着互联网的进一步发展,云计算系统规模不断扩大,所处理的业务也变得越来越复杂,不同的业务构成了不同的子系统。消息系统作为一种数据异步交互的载体,广泛应用于云环境下各个子系统的松耦合和异步消息交互。然而随着云计算和互联网规模不断扩大,如果沿用传统的消息传输机制来处理这些复杂的云上业务场景,可能会产生消息处理缓慢,消息丢失甚至消息服务器宕机的现象,从而拖垮整个业务系统。因此,作为云计算技术的一个重要组成部分,对消息传输机制进行研究和发展具有重要的现实意义。首先,对消息传输机制的可扩展性和高可用进行了研究。在消息传输机制的可扩展架构设计中,在保证Broker集群可扩展性的同时引进组和主题的概念,实现了发布端和订阅端的线性可扩展。同时,研究了一种基于改进一致性哈希的消息存储备份策略,使消息分布更加均衡,快速完成消息的定位存储和查找。为了提高消息传输过程中的高可用,提出了一种基于时间戳的Raft选主协议,在实现平滑热切换的同时减少了主备切换时消息的丢失。其次,针对消息网络传输和持久化存储过程中的性能问题,给出了一系列的设计和优化方案。对于传统的数据库存储低效的问题,提出一种基于Bitcask模型的文件存储替代方案,相对于随机读写的数据库存储性能更高。设计了全局消息传输的路由管理,它不仅实现了消息路由和消息发送功能的松耦合,而且提高了消息的寻址速度。并且研究了一种更细粒度的双层消息负载均衡机制和长连接的消息投递模型,在发布端和订阅端同时采用基于多队列的负载均衡策略并制定不同的负载均衡算法,有效将客户端连接压力和消息传输压力分散于各个Broker节点。而长连接的投递模型在保证消息实时性的前提下,既减轻了消息服务器的压力,又兼顾了吞吐量。最后,仿真实现了该消息系统,并在PaaS云计算平台中部署并测试,结果表明在可扩展性、可用性和相关性能指标上有明显的提升。