上周问同事为毛要有两个服务器, 同事甩给我一个名词active-active
. 今天学习一下.
目标
无论是active-active还是active-passive, 都是为了解决"高可用性"(High availability, HA)问题. 就是说尽量不要让你的服务挂掉.
active-active
很好理解, 用两个完全一样的server, 然后用一个load balancer进行请求的调度.
load balancer的算法可以很高深也可以很简单. 简单的例如"round-robin", 就是轮换. 第一个请求发给服务器1, 第二个发给服务器2, 第三个发给服务器1, 以此类推.
关键的一点是这两个服务器应该是完全一致的, 这样才能确保从用户端, 仿佛他一直在访问同一个服务器.
active-passive
active-passive也是两个服务器节点, 但是绝大多数时间是active的那个(或者说primary)进行服务, 当primary服务器出问题, 就使用另一个passive服务器作为备用.
跟active-active一样, active-passive也应该确保两个服务器完全一致.