并发设计中的应用分发问题算法
2015-11-13 01:46
169 查看
应用场景:相同的业务应分布在不同的机器上,当请求来临时分发应用如何将请求分发出去的方式
假设有 APP1 APP2 APP3 三台服务器 分发服务为 A
1:轮询大法:将请求按顺序分给 APP1、APP2、APP3
2:随机:就是random 了,请求量大的时候相当于轮询法
3:哈希法:获取客户端IP,算出hashcode,然后和服务器数3 % 运算,然后分出去
4:加权轮询
比如APP1硬件能力最差,APP2比APP1强一倍,APP3比APP2强1倍。APP1的权重为1,APP2的权重则为2,APP3的权重则为4,那么A里面发服务器列表则为 APP1*! APP2*2 APP3 *4 ,然后根据轮询大法去分发
5:加权随机:顾名思义结合1和4
6:最小连接法:动态计算出A分发(可以灵活选用以上任一种)出去的数量,然后找出分给的最小的APPX,然后给他
自己的归纳能力较差,看到<<面向服务的体系架构>>后摘出来的。
使用时可以在A里面定义委托,可实现热扩展。
假设有 APP1 APP2 APP3 三台服务器 分发服务为 A
1:轮询大法:将请求按顺序分给 APP1、APP2、APP3
2:随机:就是random 了,请求量大的时候相当于轮询法
3:哈希法:获取客户端IP,算出hashcode,然后和服务器数3 % 运算,然后分出去
4:加权轮询
比如APP1硬件能力最差,APP2比APP1强一倍,APP3比APP2强1倍。APP1的权重为1,APP2的权重则为2,APP3的权重则为4,那么A里面发服务器列表则为 APP1*! APP2*2 APP3 *4 ,然后根据轮询大法去分发
5:加权随机:顾名思义结合1和4
6:最小连接法:动态计算出A分发(可以灵活选用以上任一种)出去的数量,然后找出分给的最小的APPX,然后给他
自己的归纳能力较差,看到<<面向服务的体系架构>>后摘出来的。
使用时可以在A里面定义委托,可实现热扩展。
相关文章推荐
- 新的起点 Entry KINGSOFT
- BST二叉查找树
- 【黑马程序员】String.concat(),StringBuilder和“+”的区别
- p=p->next
- Unity3D脚本自动添加tag和Layer
- ui-router学习笔记
- 修改PE文件.rdata段属性, 使常量区可写
- OC中常见的错误
- Mac OS X 上搭建LAMP环境(续)
- 反射机制图
- cell左右滑动展开更多按钮-MGSwipeTableCell
- 文件流重新整理-20151113
- 最短路径—Dijkstra算法和Floyd算法
- 关于NoSQL数据库的五大优势与挑战
- MFC多个dll同时操作时导致资源出错问题
- 模板类友元函数的写法
- CSS3实现的响应式字体:自适应视图窗口大小的新单位
- 地图显示用户头像
- Smarty模板技术/引擎——变量操作(1)
- CKEditor配置属性