移动微服务性能评估:GoCoMo与缓存算法的深入分析
立即解锁
发布时间: 2025-09-13 01:51:28 阅读量: 5 订阅数: 12 AIGC 

# 移动微服务性能评估:GoCoMo与缓存算法的深入分析
## 1. GoCoMo与CoopC对比
### 1.1 基本特性对比
| 特性 | CoopC | GoCoMo |
| --- | --- | --- |
| 组合规划 | 传统反向 | 支持并行的反向 |
| 服务调用 | 分散式 | 分散式 |
| 请求路由 | 广播洪泛 | 启发式广播 |
| 动态绑定 | 基于QoS驱动 | 按需 |
| 容错 | 无 | 动态恢复 |
### 1.2 服务规划灵活性
通过应用场景2.1,在模拟目标环境中测量规划失败率来量化服务规划的灵活性。在寻找预执行计划时,GoCoMo返回预执行计划的可能性比CoopC更高。随着服务组合复杂度的增加,GoCoMo的失败率约为0 - 6%,而CoopC在大多数场景中的失败率约为0 - 8%。GoCoMo发现预执行计划的时间比CoopC短,但在稀疏场景(20个节点)和中等密集场景(30个节点)中,为解决简单请求发送的消息略多于CoopC。这是因为GoCoMo不需要像CoopC那样在反向服务查询后,通过向所有参与服务提供商转发构造消息来构造预执行组合,它允许在执行时选择和协作执行计划的片段。不过,GoCoMo在某些场景中会产生更多流量,因为它会发现更多服务链接以找到单个预执行计划的各种可能执行路径。
### 1.3 复合服务适应性
使用场景2.2来计算执行失败率,以展示GoCoMo和CoopC在移动环境中组合解决方案和完成服务执行的适应性。在大多数场景中,GoCoMo在稀疏网络(20个节点)和密集网络(30 - 50个节点)中的执行失败率低于CoopC。CoopC在服务执行期间会产生大量系统流量,特别是在服务密度增加时。这是因为当应用第一个返回的计划进行执行时,CoopC的一些参与者可能仍在进行服务发现,频繁的交互增加了数据包冲突失败的可能性。虽然GoCoMo在服务密度从40增加到50时也有类似趋势,但总体上在密集网络中产生的失败比CoopC少。在高服务密度(例如超过40个微服务)的快速移动网络中,GoCoMo的失败率比中速或慢速移动网络高0 - 17.33%;在低服务密度网络(例如20个微服务)中,失败率增加到4.67 - 25.33%,这是因为低服务密度网络中节点通信范围内的微服务数量有限,难以找到替代执行路径。在服务执行性能方面,GoCoMo在高密度场景中处理服务组合的速度比CoopC快,受服务密度的影响较小。在高度动态(快速)网络中,GoCoMo的服务组合时间增加速度比慢速网络略快,因为执行失败恢复需要跳回到已执行的节点。此外,GoCoMo产生的流量比CoopC少,因为CoopC在服务发现期间合并所有部分计划,增加了参与者之间的交互。
### 1.4 启发式服务发现的影响
GoCoMo采用了启发式服务发现机制,干扰程度的选择会影响返回组合解决方案的结果。低干扰程度可能导致更多发现消息,增加数据包冲突和丢失的可能性,进而导致组合失败;而高干扰程度在某些情况下可能导致发现范围有限,增加发现失败的可能性。通过场景2.3的测试,假设网络中所有节点使用相同的干扰程度,应用从0到5的6个级别的启发式发现。在中等密集网络(30个微服务)和中速移动性的情况下,高发现干扰(级别5)可以减少组合失败。这是因为在这样的密集网络中,即使小的搜索范围也能支持足够的备份执行路径进行故障恢复,同时发送的查询消息比低级别少,减少了数据包冲突失败的可能性。高发现干扰可以减少系统流量,特别是在密集服务网络中,但在稀疏服务网络中,高干扰程度可能会增加组合失败,因为它可能意味着相对较小的搜索范围。
### 1.5 复杂服务流规划
评估场景2.4用于评估对复杂服务流的支持,包含一个客户端节点和5 - 15个不同的微服务及其副本。这些微服务的输入和输出参数类型和数量各不相同,反映了服务实例在工作流中可能具有多个不同的入度和出度。潜在的服务流包括顺序工作流模型(模型a)、并行工作流模型(模型c和d)和混合工作流(模型b)。GoCoMo在中等快速网络下的模拟结果显示,它对场景c的支持最好,在包含类型d微服务的场景中失败率较高。而CoopC仅支持类型a(顺序)微服务。
## 2. 合作微服务供应的可用性
### 2.1 缓存算法介绍
研究了提出的LOCASS算法的性能,并将其与其他三种缓存算法进行比较:
- **LOCASS**:设置社交密度η分别为0、0.3、0.6、0.9、1。η = 1可视为完全合作情况,每个设备无私地贡献其缓存空间以最大化系统性能
0
0
复制全文