论文部分内容阅读
近年来,随着云计算、虚拟化、互联网,特别是移动互联网的蓬勃发展,当今社会已经进入大数据时代。面对海量的离线数据和历史数据,Hadoop、MapReduce等相关技术的应用与研究已经比较深入,可以有效进行应对。而随着4G网络的普及,用户数量的激增,机器学习、智能推荐等新概念的提出,以及不断涌现的线上促销、秒杀活动,致使各大互联网企业不得不面对海量实时数据的有效接入问题。不可否认的是,各种消息中间件产品的不断产生和改进,已经基本解决了海量实时数据的接入问题,然而对各种消息中间件如何进行精细化性能建模与优化仍然是工业界和学术界的热点问题。针对上述问题,本文通过对多种消息中间件在国内外的实际应用与研究情况进行了调研、整理和分析,选择了当前主流的分布式消息系统Kafka作为研究对象。通过搭建分布式的Kafka实时数据接入平台,引用了机器学习和遗传算法等研究思路,对Kafka的性能与特征之间的关系进行大量实验与分析,并进行了相应的优化,具体的研究内容包含以下几个方面:(1)基于Kafka特征的官方定义与正交试验设计的思想,进行了特征的筛选与训练样本的生成。经研究分析,特征的筛选分为两步,第一步是根据官方注释与特征定义,筛选与性能无关特征;第二步是根据特征对性能的影响程度级别与专家推荐,筛选级别低的特征。为了避免完全试验,经过调研与分析,选择了正交试验设计方法来选择具有代表性样本集合作为训练样本。(2)利用训练样本,选择合适的算法构建性能预测模型。设计并实现了获取吞吐量性能的相关实验,构成完整的训练样本。通过研究对比几种机器学习算法,结合性能与特征的关系,选择了基于LASSO的机器学习方法来对样本进行学习,并筛选出对性能影响大的特征,最终构建了相应的性能预测模型。(3)基于预测模型与遗传算法,实现了性能与特征的最优解。设计了特征映射到遗传算法中的编码方式,并优化了交叉步骤,通过选择合适的适应度函数,进行选择、交叉、变异等操作,实现了遗传算法的优化过程。(4)进行了性能预测模型与改进遗传算法的实验与对比分析。通过方差、偏差、相关性的方式对预测模型的合理性进行了分析与验证。通过对比粒子群算法、DE算法以及标准的遗传算法对性能的优化结果,分析实验结果,证明本文提出的研究思路能在资源有限的情况下得到最优的性能。