均衡负载技术,可以让网站使用多个服务器来统一提供服务,以应对巨大的访问量。
均衡负载技术的核心在于分离状态,让不同的服务器提供无差别的服务。
应用层面是有状态,他的状态就是session,通过分离session,使得可以任意增删服务器来分化压力。
有两个方式可以分离session:
1 拷贝session
每个应用服务器本地都保存全部session的拷贝,每添加一台服务器就需要拷贝相应的session,但是在大量在线用户的情况下,会导致内存耗尽,因此session层面的难扩展性,也会导致应用服务器难以扩展。
2 分割session
每个应用服务器本地只保存部分的session,同一个session/用户的多次请求都交由同一个服务器来处理。其关键在于session的路由算法,就是怎么根据session_id来确定服务器,可以使用简单哈希算法。但新增服务器导致大量的路由失效,从而导致访问峰值,可考虑使用一致性哈希算法。
3 共享session
将session的保存独立开来,如保存在数据库或缓存中,为所有的服务器提供共享的session。由于session独立,因此可以随意添加应用服务器而无需额外的处理(如1的拷贝session,2的处理session失效)