推拉模式

上面已提到消费端感知topic服务器有新消息叫推拉模式

左图采用短连接,server端不能获取clinet连接资源,无法主动推给client。所以要求client定时过来拿数据

右图采用长连接,server端可以获取clinet连接资源,有消息过来就能主动推给client

短连接应用受环境因素限制,如b/s架构 应用是寄生在浏览器执行,还没出现websocket之前只能用js ajax技术来解决

还有是移动端,网络经常抖动不稳定,用短连接实施成本上是很低的,但缺点很明显非常占用流量

推拉模式常用上比较简单的b/s架构 如web、app应用

s/s构架方面 多数用于数据采集,内容分发 如日志同步

至于采用推还是拉:原则少交互,减少存储状态记录

举例:日志同步

上图是server端向client拉数据,由于client增长是无法控制的主动去拉数据时要每次记录每个client是否成功,还要考虑提高并发处理,至少要在源码开发上要考虑支持

下图是client端向server推数据,这种方式server端逻辑简化很多,传输数据是否成功依赖client端,把运算压力分散到每个client上,server端只需要考虑提高连接数量,每个client同步时间错开就行了

但不是一成不变,如果数据安全级别要求较高,那么处理方式就不同了

转自:https://www.cnblogs.com/solq111/p/6598978.html

原文地址:https://www.cnblogs.com/itplay/p/11031043.html

时间: 2024-12-16 11:07:33

推拉模式的相关文章

水晶报表的推拉模式的具体实现

水晶报表在应用时分两种方法,分别是拉模式(PULL).推模式(PUSH). 拉模式:在水晶报表生成时的数据源是从水晶报表文件中的SQL语句从数据库中提取的,在编程时不用重写SQL语句,但要加上登录信息. 推模式:在水晶报表生成时的数据源,是用编程时重写水晶报表中SQL语句而生成的dataset对像.也就是说,推模式是用dataset组装水晶报表. 1. 拉模式实现: DATATABLE不用在代码中实现,直接把参数和登陆信息传递给报表即可. public ReportDocument Crysta

微博feed系统的推(push)模式和拉(pull)模式和时间分区拉模式架构探讨

sns系统,微博系统都应用到了feed(每条微博或者sns里的新鲜事等我们称作feed)系统,不管是twitter.com或者国内的新浪微博,人人网等,在各种技术社区,技术大会上都在分享自己的feed架构,也就是推拉模式(timyang上次也分享了新浪微薄的模式).下面我们就微博的feed推拉(push,pull)模式做一下探讨,并提出新的时间分区拉模式. 众所周知,在微博中,当你发表一篇微博,那么所有关注你的followers(粉丝)都会在一定的时间内收到你的微薄,这有点像群发一封邮件,所有的

使用Sentinel Dashboard动态推拉数据同步到Nacos

准备工作: 下载Sentinel Dashboard的release版本.地址:https://github.com/alibaba/Sentinel/releases 一 :修改pom.xml中的sentinel-datasource-nacos的依赖,将<scope>test</scope>注释掉,这样才能在主程序中使用. <dependency> <groupId>com.alibaba.csp</groupId> <artifact

Java设计模式の观察者模式(推拉模型)

目录: 一.观察者定义 二.观察者模式的结构(推模式实现) 三.推模型和拉模型(拉模式实现) 四.JAVA提供的对观察者模式的支持 五.使用JAVA对观察者模式的支持(自带推模式实现实例) 一.观察者定义 在阎宏博士的<JAVA与模式>一书中开头是这样描述观察者(Observer)模式的: 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式.模型-视图(Model/View)模式.源-监听器(Source/Listener)模式或从属者(Dependents)

用Darwin开发RTSP级联server(拉模式转发)(附源代码)

源代码下载地址:https://github.com/EasyDarwin orwww.easydarwin.org 在博客 在Darwin进行实时视频转发的两种模式 中,我们描写叙述了流媒体server对源端音视频转发的两种模式.当中一种#拉模式# 转发.在我们通常的项目中常常会用到.比方在传统视频监控行业,IP摄像机部署在监控内网的各个地点.我们须要将他们进行集中式的管理,而且对外公布,这时候我们就须要用到一台流媒体server,可以拉取所需的摄像机的音视频流,并做转化(如RTMP.HTTP

签入代码(新建分支,新建推拉请求)关联工作项,却找不到自己需要的工作项

问题描述 TFS 2017在用户体验方面,相比之前的版本已经做了非常大的提升.由于变化大,使用手册和文档(特别是中文)的更新不及时,在使用过程中用户往往存在许多困惑. 昨天我在页面中签入代码,同时需要关联工作项,缺无论如何也找不到我需要的工作项,如图1.但是我通过工作项查询,却可以查到我需要的工作项,如图2. 这种情况,当用户在新建分支.新建推拉请求过程中,都出现通用的现象. 图1 - 签入代码过程中关联工作项 图2 - 在工作项查询中按照标题查询工作项 解决方案 最初怀疑是由于我使用的中文过程

异常流,推模式(Rx) 拉模式(Ix) 有点乱 来捋一捋

把集合的产生分成这几类 1,通过循环产生的 2,通过时间累积一些行为产生的 暂时先分成这两类, 异步流,和同步流的区别 关键在这里 同步当然不存在流,就是集合构造吧,异步构造之间有一些关键点 同步是这样 void m1(){ var sum=0; for( int i=0; i<10;i++){ sum+=i; } Console.WriteLine(sum); } 最后屏幕上打印了sum的值 要想看到sum每一步的变化就在for里写一个Console.Wri~方法打印sum就行了 但是如果是向

Docker创建镜像 并推拉Harbor

创建镜像 一.根据dockerfile创建镜像 文件详解 1.mkdir dockerfile/lib/centos7base/ 创建目录 2.创建Dockerfile vim Dockerfile 3.构建镜像 docker build -t wyxcentos7 . 过程解析docker镜像是只读的,这里为什么能够在centos镜像的基础上进行自定义操作呢? 我们看一下docker的编译过程 编译的第一步(绿色边框)会复用之前已经存在的centos:7 重点是第二步 882832c2b8eb

游戏开发之[水果忍者]:月流水持续近千万 推新模式

狗刨学习网报道 / 由Halfbrick Studios于2010年开发的一款在<水果忍者>在移动平台创造了2年内在全球游戏被下载3亿次的不朽成绩.而这款曾风靡全球的游戏在被乐逗游戏代理发行后,将该游戏继续发扬光大.据官方所公布的数据,<水果忍者>自进入中国市场4年以来,已经实现了近3亿的下载量,其月流水持续近千万,DAU维持100万的成绩. 作为一款已经上线4年的休闲游戏,该游戏还能维持这样的成绩,主要还是靠乐逗游戏对这款游戏不断制作出新版本,增加新内容.根据历往记录显示,这款&