一、已有文献中的负载均衡策略存在以下问题:
1.出现较为显著的网络开销;
2.忽略了跨链共享微服务的竞争;
3.典型负载均衡方法利用HTTP与消息队列相结合的混合技术来支持微服务之间的通信,这技术带来了额外的操作复杂性。
二、提出的应对策略与方法
为了应对上述挑战,本文提出了一种仅依赖消息队列的面向链的负载均衡算法(a chain-oriented load balancing algorithm-COLBA),该算法基于链的微服务需求平衡负载以最小化响应时间。
具体创新点如下:
1.将负载均衡问题建模为一种非合作博弈问题,采用纳什议价解来限制每一个链的平均响应时间,以及协调跨链的微服务分配;
2.采用带有舍入的凸优化技术,COLBA方法在数十次迭代之后收敛,近似解决了上述建模的非合作博弈问题,该问题被证明是NP困难的。通过理论分析证明,这个解在最优解的常数邻域内。
三、本文方法的效果
大量的基于轨迹驱动的仿真证明:相比于已有文献中的面向微服务和面向实例的负载均衡方法,COBLA方法能分别减少13%和41%的整体平均响应时间。此外,除了最小化响应时间之外,仿真结果证明:在考虑链的期望Qos和跨链竞争的前提下,COBLA方法能够协调实例的分配。