论文部分内容阅读
在微服务系统架构中,微服务发现技术早已成为人们研究的重点之一,在微服务发现过程中考虑情境因素有助于更准确地找到满足用户需求的服务。在大多数已有的微服务发现算法中,因为没有考虑情境因素,所以用户对微服务发现结果的满意度不高;而在某些算法中,虽然考虑了情境因素但算法的时间效率却不高。如何在保证微服务发现时间效率的同时,又能保证微服务发现结果的用户满意度,是本文研究的目的和意义。在现有研究的基础上,给出基于情境的微服务动态发现框架,主要包括微服务发现算法和微服务实例发现算法。针对微服务数量庞大,难以全面准确地匹配满足用户功能需求的微服务的问题,提出微服务发现算法,算法包括微服务情境聚类、用户情境聚类、微服务相似度匹配、用户相似度匹配和微服务QoS匹配。根据微服务情境的相似度,采用Canopy+K-means聚类算法实现微服务的聚类,得到若干微服务类的集合;根据用户情境的相似度,采用基于模糊等价关系的聚类算法实现微服务用户的聚类,得到若干用户类的集合;给出微服务相似度匹配方法,实现用户请求与每个微服务类的中心服务的匹配,获得初始的候选服务集;给出用户相似度匹配方法,实现请求用户的情境信息与每个用户类的中心用户的匹配,达到优化候选服务集的效果;给出微服务QoS匹配方法,实现微服务QoS和请求者的个人偏好的匹配,达到更新候选服务集的目的。针对不同微服务实例性能差距较大的问题,给出微服务实例发现算法,采用根据实例QoS历史数据计算当前数据,根据请求者的偏好信息即主观权重、微服务实例QoS数据即客观权重计算每个属性的权重的方法,以及课题组提出的基于服务器历史数据预测服务器性能的方法,实现每个实例的综合性能的计算,达到微服务实例发现的目的。对微服务情境聚类算法、用户情境聚类算法、微服务发现算法和微服务实例发现算法分别进行比较实验。实验结果表明,微服务聚类算法和用户聚类算法的聚类结果有较高的准确率,并且提出的基于情境的微服务动态发现算法可以有效提高微服务发现结果的用户满意度,减少微服务发现所需时间。