上QQ阅读APP看书,第一时间看更新
2.2.1 使用边车模式改善性能和可用性
众所周知,对系统来说,关键是性能和可用性,而非或花里胡哨的额外功能。然而,添加负载均衡层后,网络跳数可能增加,性能和可用性都可能受到影响。另外,系统还需要添加一个虚拟互联网协议或负载均衡器,以解决负载均衡层本身存在的高可用性问题,这将导致系统更加复杂。对于新增负载均衡层带来的问题,边车模式是解决它们的“银弹”。
边车模式指的是在每个应用服务器上都添加一个负载均衡器,该负载均衡器的生命周期与应用本身相同:应用启动时,其负载均衡器启动;应用被销毁时,其负载均衡器消失。每个应用都有自己的负载均衡器,这确保了负载均衡器的高可用性。这种方法也最大程度地减少了性能耗损,因为负载均衡器和应用部署在同一个物理容器中,这意味着远程过程调用(remote procedure call,RPC)变成了进程间通信(interprocess communication,IPC)。
除了改善性能和高可用性,边车模式还将应用与数据库SDK解耦,这让运维团队能够随时升级边车和数据库,因为这种设计使得升级不会影响业务应用。由于边车是独立于应用的,因此只要边车采用的是金丝雀发布(canary release),它对应用开发人员来说就是完全透明的。不同于被连接到应用中的类库,使用边车可更有效地统一在线应用版本。
实际上,流行的服务网格概念就将边车作为数据平面,以处理系统中的东西流量和南北流量,它还使用控制平面来向数据平面发送指令,以控制流量或完成透明的升级。
边车模式存在的最大问题是其高昂的部署和管理开销,因为需要为每个应用都部署边车。由于需要部署大量的边车,因此必须测量其资源占有量和体量,这至关重要。
提示 良好的边车应用必须是极度轻量级的。