Push or Pull
来源:互联网 发布:p6软件 编辑:程序博客网 时间:2024/06/08 16:34
转自:http://www.blogjava.net/killme2008/archive/2011/04/30/349303.html
无论是消息系统,还是配置管理中心,甚至存储系统,你都要面临这样一个选择,push模型 or pull模型?是服务端主动给客户端推送数据,还是客户端去服务器拉数据,一张图表对比如下:
服务端需要做流量控制,无法最大化客户端的处理能力。
其次,在客户端故障情况下,无效的push对服务端有一定负载。
客户端的请求可能很多无效或者没有数据可供传输,浪费带宽和服务器处理能力缺点方案服务器端的状态存储是个难点,可以将这些状态转移到DB或者key-value存储,来减轻server压力。针对实时性的问题,可以将push加入进来,push小数据的通知信息,让客户端再来主动pull。
针对无效请求的问题,可以设置逐渐延长间隔时间的策略,以及合理设计协议尽量缩小请求数据包来节省带宽。
在面对大量甚至海量客户端的时候,使用push模型,保存大量的状态信息是个沉重的负担,加上复制N份数据分发的压力,也会使得实时性这唯一的优点也被放小。
使用pull模型,通过将客户端状态保存在客户端,大大减轻了服务器端压力,通过客户端自身做流量控制也更容易,更能发挥客户端的处理能力,但是需要面对如何在这些客户端之间做协调的难题。如,阿里的Metaq使用的是pull模型,客户端之间的协调使用zookeeper进行。
0 0
- observer, pull or push?
- Push or Pull
- push or pull 推取技术
- push or pull 与hadoop 的机制
- push pull
- PUSH PULL 技术
- adb pull & push
- git push & git pull
- web push pull technology
- ZMQ PULL/PUSH exercise
- git pull git push
- adb pull/push 文件夹
- [android]adb push/pull
- [android]adb push/pull
- [android]adb push/pull
- Pull和Push
- adb pull/push
- Git push/pull etc
- sublime text 编译时提示[WinError 2] 系统找不到指定的文件。
- 剪图神器官网
- DAL(4)
- Oracle数据库备份与恢复特性浅谈
- 交叉编译jrtplib3.9.1详解
- Push or Pull
- libsigc++-1.2.5库的使用
- Localhost ,127.0.0.1 和 计算机 IP地址
- nutch安装与测试
- iOS 多线程 锁 互斥 同步
- SQL SERVER分区表探寻(二)
- 画刷和歌词播放效果+变换和投射
- 关于"failed to report status for 600 seconds. killing"的错误
- dedecms 按照ID升序 降序排列方法