博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
负载均衡基础理论
阅读量:4313 次
发布时间:2019-06-06

本文共 1186 字,大约阅读时间需要 3 分钟。

应用场景

我这里大致分为两种:单工,双工。单工即是有明确的服务器和客户端,客户端主动请求,服务端侦听应答,大部分Web即是如此。双工即是没有明确的客户端服务端,双方可以互相主动通讯,比如聊天室,比如在线游戏。双工对同学提出了更多要求比如参照所提到的:

游戏服务器的分布式架构与Web服务器是不同的, 以下是web服务器与游戏服务器架构的区别:

>长连接与短连接。web应用使用基于http的短连接以达到最大的可扩展性,游戏应用采用基于socket(websocket)的长连接,以达到最大的实时性。

>分区策略不同。web应用的分区可以根据负载均衡自由决定, 而游戏则是基于场景(area)的分区模式, 这使同场景的玩家跑在一个进程内, 以达到最少的跨进程调用。

>有状态和无状态。web应用是无状态的, 可以达到无限的扩展。 而游戏应用则是有状态的, 由于基于场景的分区策略,它的请求必须路由到指定的服务器, 这也使游戏达不到web应用同样的可扩展性。

>广播模式和request/response模式。web应用采用了基于request/response的请求响应模式。而游戏应用则更频繁地使用广播, 由于玩家在游戏里的行动要实时地通知场景中的其它玩家, 必须通过广播的模式实时发送。这也使游戏在网络通信上的要求高于web应用。

均衡策略

有两种策略,一种是静态均衡,一种动态均衡,分别如下:

静态负均衡:客户端一旦和服务端建立链接,则在服务端不出错的的情况下一直链接该服务。且以后的通讯不再通过均衡服务,而是客户端和服务端直接通讯。如果客户端检测到无法链接当前的服务,则再次请求路由服务器分发新的服务地址。这种策略比较适合双工环境,特别是有回调的场景。这种均衡策略可以通过在客户端配置服务,也可以通过均衡服务路由客户端到服务端来实现。

动态均衡:每次请求,可能都是不同的服务端来处理。请求先到均衡服务,均衡服务转发请求给某个服务,服务处理完成后再转发给均衡服务,最后均衡服务把结果返回给客户端。

两种策略主要有如下区别:

l  静态均衡性能更好,因为最后是客户端和服务端直接对话。如果客户端太多,有时候网关的压力很会很大,导致网关也要一个负载均衡。

l  静态均衡可以更好的支持回调,在技术实现双工更简单。

l  可用性动态均衡更好。一旦服务出现问题,静态均衡需要重链。

l  扩展性动态均衡更好,对外根本不知道到底有多少有多少服务。不过静态均衡通过均衡服务分配服务也可以做到一点。

l  动态均衡更安全,均衡服务还起到网关的作用。

参考:

http://visualbasic.freetutes.com/learn-vb6-advanced/lesson1/p9.html

转载于:https://www.cnblogs.com/wusong/p/3755392.html

你可能感兴趣的文章
SO_REUSEADDR & SO_REUSEPORT
查看>>
【大前端攻城狮之路·二】Javascript&QA⼯程师
查看>>
[MVC] - Asynchronous操作
查看>>
mysql -- 查询并插入
查看>>
windows下Yarn安装与使用
查看>>
排序算法——快速排序
查看>>
禁用表单元素 && 禁止选中
查看>>
YII2 电话号码的验证规则
查看>>
SPFA模板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板...
查看>>
java注解
查看>>
[翻译] Fast Image Cache
查看>>
iOS文件处理类
查看>>
Hadoop集群datanode磁盘不均衡的解决方案
查看>>
Vue 开源项目库汇总(转)
查看>>
403 ,502 到正确的nginx 配置
查看>>
[Nescafé41]异化多肽(多项式求逆元)
查看>>
网络中常见的ping命令协议
查看>>
不用position,让div垂直居中
查看>>
sql 语句 查找
查看>>
谓词和运算符
查看>>