知识卡片

抽象掉通信端点是实现透明负载均衡的前提

普通读书笔记卡 · 1805.e

内容

客户端与服务器通信要经过”会话服务”或”通道服务”这层抽象,上层看不到通信落在哪台物理机器。正因这层抽象存在,Darkstar才能运行中把会话从一台服务器搬到另一台做负载均衡而不让客户端察觉——若端点直接暴露给上层,迁移会破坏已建立的连接语义。这是”要让资源能运行时迁移,先要把访问方式做成可替换抽象”的具体案例。

参考来源

- 位置:《架构之美》第3章《伸缩性架构设计》3.3.3节《通信服务》(源文件:程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美/_epub-src/OEBPS/Text/part0121.xhtml) - 结论依据:原文明确"既然所有通信都必须通过Darkstar会话或通道的抽象层,而这些抽象层又不暴露客户端或服务器通信的真实端点,那么在实体通信和通信起止端的实际位置之间就存在着一个抽象层。这意味着我们可以在Darkstar系统中将服务器通信的端点从一台机器移到另一台机器,同时不会改变客户端对这次通信的感觉"。 - 原始内容:既然所有通信都必须通过Darkstar会话或通道的抽象层,而这些抽象层又不暴露客户端或服务器通信的真实端点……我们可以在Darkstar系统中将服务器通信的端点从一台机器移到另一台机器,同时不会改变客户端对这次通信的感觉。