当前位置: 首页 > news >正文

net网站建设语言太原网站建设王道下拉惠

net网站建设语言,太原网站建设王道下拉惠,杭州手机网站制作公司,yusi主题wordpress在一个分布式系统中#xff0c;有各种消息的处理#xff0c;有各种服务模式#xff0c;有同步异步#xff0c;有高并发问题甚至应对高并发问题的Actor编程模型#xff0c;本文尝试对这些问题做一个简单思考和总结。一、消息的“推、拉模式” 在传统的Client/Server结构中有各种消息的处理有各种服务模式有同步异步有高并发问题甚至应对高并发问题的Actor编程模型本文尝试对这些问题做一个简单思考和总结。一、消息的“推、拉模式”     在传统的Client/Server结构中信息获取方式是按“拉”(Pull)的模型进行的服务器根据用户终端发送的服务请求进行处理并返回用户所需的结果。在Push系统中服务器把信息“推”给用户终端系统。虽然两者数据传输的方向都是从服务器流向用户但操作的发起者是不同的。从“信源”与“用户”的关系来看信息的流动可分为两种模式即信息推送与信息拉取模式。    在成熟的消息队列产品中对消息的获取也分为消息拉取模式和消息推送模式这两种模式各有优点需要根据应用的特点来选择。Push“推”的好处包括1、高效。如果没有更新发生不会有任何更新消息推送的动作即每次消息推送都发生在确确实实的更新事件之后都是有意义的。2、实时。事件发生后的第一时间即可触发通知操作。3、可以由发布者确立通知的时间可以避开一些繁忙时间。4、可以表达出不同事件发生的先后顺序。 Pull“拉”的好处包括1、如果观察者众多订阅者来维护订阅者的列表可能困难或者臃肿把订阅关系解脱到观察者去完成。2、观察者可以不理会它不关心的变更事件只需要去获取自己感兴趣的事件即可。3、观察者可以自行决定获取更新事件的时间。4、拉的形式可以让订阅者更好地控制各个观察者每次查询更新的访问权限。二、同步、异步和并行    一个大型的程序系统常常是由很多不能功能模块组成的。程序系统运行时不同功能模块要按一定顺序执行以协同完成一件任务。功能模块协作运行完成一件任务存在同步和异步两种方式。    如果在某一时间段这个程序系统的所有功能模块都在为完成相同的一件任务而服务某一个功能模块在完成一件任务的子任务后需要等待其他功能模块完成子任务这样只有当全部功能模块按顺序完成一件任务后程序系统才能接收下一个任务功能模块是串行运行这称之为同步模式。    反之在某一时间段这个程序系统的不同功能模块可以独立运行完成一件任务的子任务无须等待其他功能模块完成子任务就可以继续处理下一件任务的子任务功能模块是并行运行这称之为异步模式。    反映在OLTP程序系统中一个交易就是一个任务。如程序系统一次只完成一个交易在这个交易没有完成前程序系统不接受其他交易这就是同步模式。如程序系统把交易任务分拆成几个独立的子进程每个子进程独立完成交易的一个子任务几个子进程同时运行这就是异步模式。由于交易在模块之间是按照一定顺序运行的所以对一个具体交易而言模块之间任务执行时并不表现为并行运行但对大批量交易的宏观效果而言模块之间却是表现为并行运行。 三、服务的处理模式    消息获取的“推、拉模式”实际上是站在消息的消费者也就是客户端的角度来说的即消息是服务器推送给我还是我去拉取消息的问题。如果站在服务器的角度也就是消息的生产者来看也有2种模式。2.1“请求-响应”模式     这是绝大部分Client/Server结构对信息的处理模式服务器提供不间断的服务等待客户端的请求。一旦接收到客户端的请求服务器马上处理该请求然后生成处理结果最后将结果响应给客户端。请求-响应模式通常是一对一的响应客户端主动发起请求服务端被动响应。典型的例子就是HTTP服务器。    请求-响应模式要求服务器能够实时的进行响应客户端接收到响应后在进行下一步处理因此它的处理过程常常是“同步”的。但有时候客户端发出的请求服务端需要进行长时间的处理才能返回结果给客户端让客户端长时间等待就不合理了这时候可以使用异步处理技术客户端发出请求后就返回到自己的处理线程服务器处理完成后回调客户端提供的方法。广泛流行的Ajax 即“Asynchronous Javascript And XML”异步 JavaScript 和 XML就是这种异步处理请求-响应模式的方案它提供了一种创建交互式网页应用的网页开发技术。2.2“发布-订阅”模式    有时候不要求服务器收到请求后立刻给客户端响应结果而是在随后的某个时间服务器才能处理完成结果或者说生产消息通过某种方式送到客户端。这种通信模式特别像报刊的订阅出版社出版一份报刊读者订阅此报刊然后出版社通过邮局将报刊定期投递到读者手中。所以我们将这种通信模式形象的称呼为“发布-订阅”模式即服务器发布者发布一个消息主题客户端订阅者订阅此主题然后服务器定期或者不定期的将消息推送给客户端。    由于“发布-订阅”模式消息不能及时响应给客户端的特点所以通常实现为异步处理模式客户端提供一个回掉函数服务端有消息的时候这个回掉函数被调用。    受限于Client/Server结构两端所处的位置不同客户端可能在内网通过NAT方式上网并且HTTP短连接的应用特点Client/Server并不是实时连接的服务器无法主动连接客户端那么消息也就无法实时推送给客户端只有客户端不断的请求服务器来获取最新的消息于是出现了“长轮询”long-pull技术服务器会Hold住客户端的连接如果在超时之前还没有结果那么服务器生成一个空消息给客户端客户端收到此空消息后再次发起请求知道收到服务器真正的消息为止。    但是长轮询需要消耗过多的服务器资源和网络资源并且浏览器的并发请求数通常也有限制所以长轮询并不是一个很好的方案如果服务器能够主动将消息推送给客户端就可以避免这些问题于是基于“长连接”的消息推送技术产生了WebSocket就是这样一种技术浏览器发起一个普通请求告诉服务器这是一个WebSocket请求然后服务器升级服务处理级别切换到Socket处理方式与客户端浏览器建立Soket通信通道当服务器有消息后就推送给浏览器。    如果客户端不是浏览器可以直接和服务器建立Socket通信并保持为长连接由服务器推送消息给客户端。比如PDF.NET的消息服务器框架MSF就是基于WCF的TCP双工长连接来实现服务器推送消息的。    所以“发布-订阅”是一种服务模式它可以通过短连接的客户端轮询请求pull或者基于长连接的服务器主动推送(push)来实现。消息的“推、拉模式”均可实现“发布-订阅”这种种服务模式。四消息服务框架MSF的服务模式    消息服务框架MSF支持前面讲的两种服务模式“请求-响应”模式“发布-订阅”模式。在MSF的具体实现中“请求-响应”模式是“发布-订阅”模式的特例内部都是通过后者的基础实现的可以这么认为“请求-响应”模式是一种及时响应的一对一消息推送的“发布-订阅”模式也就是说前者只有一个客户端或者有多个客户端。MSF的这种处理模式得到一个意外的结果  同一个服务既可以是“请求-响应”模式的又可以是“发布-订阅”模式具体取决于客户端的调用方式。有关MSF的两种服务模式请参考前篇《“一切都是消息”--MSF消息服务框架之【请求-响应】模式 》《“一切都是消息”--MSF消息服务框架之【发布-订阅】模式》       两种模式从主动性上来看“请求-响应”模式是客户端主动的所以我将它简称为 “请求模式”而“发布-订阅”模式是服务器主动的所以我将它简称为 “推送模式”。     MSF的“请求模式”也支持服务器推送消息即在一次请求过程中服务器可以多次推送消息给客户端“回调”客户端提供的函数所以这种回调结果通常作为服务器最终响应结果的“中间结果”。比如请求一个文件上传服务服务器多次回调客户端读取客户端的文件数据。    MSF的“推送模式”分为定时推送模式和事件推送模式事件推送模式的意思是将服务器发生的事件作为消息推送到客户端然后客户端响应此事件类型的消息等同于客户端订阅了服务器的事件本质上就是一种“分布式事件”了。五Actor对象的激活与生命周期    Actor编程模型是一种基于消息处理的并发编程模型它有几个典型特点Actor之间只通过消息进行通信没有观察者模式或者事件代码的耦合Actor的内部状态只能由自己改变Actor可以通过消息激活别的Actor以创建响应式的任务这种类型的任务处理是易于并行处理的。    消息服务框架MSF是基于分布式消息处理的框架在设计上它具有Actor模式的特点MSF的每个服务对象实例都是一个ActorMSF通过不同的服务模式来控制Actor的生命周期“请求-响应”模式每次请求服务器会创建一个独立的服务对象实例“发布-订阅”模式每一个相同“主题”的订阅服务器会创建同一个服务对象实例。    这里说的“主题”指的是相同的服务名相同的方法名和相同的参数值在MSF中也称呼为“订阅任务”。客户端订阅不同的主题服务端会创建不同的服务对象实例。    不管是哪种服务模式MSF的服务对象实例Actor它的生命周期都会执行到服务方法执行完成但是“发布-订阅”服务模式的服务对象实例它执行完成任务后可以继续等待直到设定的超时时间之后这样不必创建新的服务对象而接受下一次的订阅请求。当然也可以在服务的订阅任务处理完成后通过编码及时停止服务而不等待。    创建同一个服务对象实例有一个很大的好处它让多个订阅的客户端共享了同一个服务对象实例将会非常有用。    比如客户端订阅了产品A的服务相当于客户端激活了服务端的一个对象这个对象将存活到它的任务处理完成为止。如果另外一个客户端也订阅了产品A的服务新客户端将一样收到服务端推送过来的消息。    假设客户端A激活了服务端B服务而服务端B服务又去调用服务端C服务将激活服务端C服务.....一个分布式对象服务的链式激活过程开启了。你只需要去调用需要的服务服务的激活和服务对象的销毁MSF框架会帮你搞定一切。    总之MSF的这种服务之间的通信都是通过消息进行的对象之间只有消息并且是分布式的消息所以MSF是一个真正的分布式Actor编程模型。原文地址:https://www.cnblogs.com/bluedoctor/p/8127122.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://wiki.neutronadmin.com/news/401084/

相关文章:

  • 烟台教育平台网站建设重庆最新消息今天封城了
  • 如何建立网站导航长沙建网站联系电话
  • 网站开发长沙河北省住房和城市建设局采购网站
  • 网站栏目内容企业网站备案需要什么
  • 招聘网站开发需求网络营销出来可以干什么工作
  • 慈溪网站制作哪家最好竞价托管服务公司
  • 怎么看一个网站做没做优化苏州发布最新消息
  • 海淀网站建设联系方式长沙房地产集团
  • 网站内的新闻怎样做链接局网站建设情况
  • dw网站建设的基本流程智慧城市网站建设
  • 网站建设1選宙斯站长国家有规定必须做可信网站验证
  • 做贷款的网站十大金融公司排名
  • 网站建设 用什么语言phpnow安装wordpress
  • 单页面营销网站策划书网站
  • 在哪个网站做一照一码硬件开发工程师面试问题
  • 网站建设项目规划书目录怎么设计软件
  • 丰镇市网站网页设计html代码大全桂林
  • 网站建设有什么要求企业营业执照查询系统入口
  • 汽车配件外贸网站深圳哪里有网站建设
  • wordpress装修套餐网站源码做饼干的网站
  • 网站建设与管理案例教程教学大纲网站建设多少钱专业
  • 优秀的手机网站案例带会员注册企业网站源码
  • 有经验的宁波网站建设主机屋wordpress
  • 合肥做网站做推广网站的软件维护包括什么
  • 做个网站得多少钱网页美工设计公司
  • 有没有做任务能兑换现金的网站网站建设策划书封面
  • 湖北省建设厅政务公开网站wordpress 外链 图库
  • 做白酒有没有必要做个网站动漫设计图片大全
  • 做编程的 网站批量域名注册查询
  • 邯郸市永年区做网站的公司韩城市住房和城乡建设局网站