最近做一个消息系统,其中涉及到新消息数的即时更新,当时就想到了观察者模式,后来听同事提到推拉模式,感觉推模式原理上应该还是属于观察者模式,只不过把server变成了被观察对象,client被动观察
。。。
其实推拉模式我们经常遇到,如广播(推)、HTTP请求(拉),只是没有刻意去追求概念。设计时还是应该多考虑到。
考虑到性能还效率,最终还是选择了拉模式,每隔一断时间请求一次、更新。
下面是引用:
推(push)模式是一种基于客户器/服务器机制、由服务器主动将信息送到客户器的技术。在push模式应用中,服务器把信息送给客户器之前,并没有明显的客户请求。push事务由服务器发起。push模式可以让信息主动、快速地寻找用户/客户器,信息的主动性和实时性比较好。但精确性较差,可能推送的信息并不一定满足客户的需求。推送模式不能保证能把信息送到客户器,因为推模式采用了广播机制,如果客户器正好联网并且和服务器在同一个频道上,推送模式才是有效的。push模式无法跟踪状态,采用了开环控制模式,没有用户反馈信息。在实际应用中,由客户器向服务器发送一个申请,并把自己的地址(如IP、port)告知服务器,然后服务器就源源不断地把信息推送到指定地址。在多媒体信息广播中也采用了推模式。另外,如手机***、qq广播。
拉(pull)模式与推模式相反,是由客户器主动发起的事务。服务器把自己所拥有的信息放在指定地址(如IP、port),客户器向指定地址发送请求,把自己需要的资源“拉”回来。不仅可以准确获取自己需要的资源,还可以及时把客户端的状态反馈给服务器。
分享到:
相关推荐
rocketmq推消息模式分享,讲述了基本原理,消息与消息队列,长轮询,offset存储机制,消息异常重推机制的总体概述
NetMQ例子,多线程模式,推拉模式,订阅模式等
NetMQ例子,推拉模式,改造了一下官方的例子,更容易理解
feed流业务的推拉模式小结: • 拉模式,读扩散,feed存一份,存储小,用户集中访问数据,性能差 • 推模式,写扩散,feed存多份,用冗余存储换锁冲突,性能高
通过分析混合流程企业生产计划管理的实际需求特点,提出生产工艺流程图和一种推拉结合的生产计划与调度模型。模型以订单、库存和预投为综合需求起点,以拉式补货的方式制订有限产能的主生产计划,依据工艺流程图分解...
新版特色: 3.0版集合了更多的功能,它们包括法线推拉(n)、向量推拉(v)、联合推拉(j)、投影推拉(x)、倒角推拉(r)和智能推拉(f)。 最新版本3.x更具互动性,并增加了3个新工具:挤压、倒角和跟随, V3.2还增加了向量...
下面我们就微博的feed推拉(push,pull)模式做一下探讨,并提出新的时间分区拉模式。众所周知,在微博中,当你发表一篇微博,那么所有关注你的followers(粉丝)都会在一定的时间内收到你的微薄,这有点像群发一封邮件...
工厂模式定义一个创建对象的接口,让子类决定实例化哪一个类 5观察者模式的推拉有什么不同?适用场景 现在要说的分歧在这里: "推"的方式是指,Subject维护一份观察者的列表,每当有更新发生,Subject会把更新 消息...
su sketchup 超级推拉 把解压包里的文件放到软件su所安装文件下的plugin文件夹里即可
skp联合推拉插件,用于skp,曲面推拉。自量推拉,法线推拉
使用Qt实现推拉组件,在一个主窗体上推拉出一个窗体不影响布局,可以跟随主窗体移动。
SketchUp的插件 最新版的2018.3.22联合推拉4.3(可视互动版)含lib数据
android页面推拉效果,可以根据需要进行修改
使用javascript实现的推拉菜单 源码等实现方法在文档中已详细说明
开漏输出和推拉输出的区别
95系列推拉窗,截面图,方便大家选择与建模。
Delphi推拉图片效果..rar
c++builder图片推拉实例 来源于学校图书馆光盘