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

ajax做网站企业建设高端网站的目的

ajax做网站,企业建设高端网站的目的,提高wordpress打开速度,易优cms仿站教程理解netty的回调 对于都在内存里的回调, 是所有的调用栈持有回调对象,所以在当前执行节点执行完成时,可以直接从内存中拿到回调对象,直接回调即可 针对于网络编程,netty, 需要跨机器经历网络传输,所以不可能调用栈里持有回调对象,所以会额外使用map记录回调对象future…

理解netty的回调

对于都在内存里的回调, 是所有的调用栈持有回调对象,所以在当前执行节点执行完成时,可以直接从内存中拿到回调对象,直接回调即可

针对于网络编程,netty, 需要跨机器经历网络传输,所以不可能调用栈里持有回调对象,所以会额外使用map记录回调对象future, 方便在回调时, 通过requestid找到对应的回调对象,进行回调方法的调用;
所以发起调用的是 channalWrite(), 而netty发起回调的又是另外的方法,channelRecieve()方法。
要把来个方法联系起来看;

如果遇到线程start()方法, 不要看start, 而要直接取看run()方法

获取消息的方式

消费者并不是每次要消费一条数据就向Broker获取一条数据的,这样RPC的开销太大了,因此先从Broker获取一批数据到内存中,再进行消费

消费端获取消息通常有三种方式:推送消息、拉取消息、长轮询(推拉结合)

推送消息:消息持久化到Broker后,Broker监听到有新消息,主动将消息推送到对应的消费者

Broker主动推送消息具有很好的实时性,但如果消费端没有流控,推送大量消息时会增加消费端压力,导致消息堆积、吞吐量、性能下降

拉取消息:消费端可以根据自身的能力主动向Broker拉取适量的消息,但不好预估拉取消息的频率,拉取太慢会导致实时性差,拉取太快可能导致压力大、消息堆积

长轮询:在拉取消息的基础上进行改进,如果在broker没拉取到消息,则会等待一段时间,直到消息到达或超时再触发拉取消息

长轮询相当于在拉取消息的同时,通过监听消息到达,增加推送的优点,将拉取、推送的优点结合,但长连接会更占资源,大量长连接会导致开销大

RocketMQ中常用的消费者DefaultMQPushConsumer,虽然从名字看是“推送”的方式,但获取消息用的是长轮询的方式

这种特殊的拉取消息方式能到达实时推送的效果,并在消费者端做好流控(拉取消息达到阈值就延时拉取)以防压力过大

拉取消息原理

在这里插入图片描述
点进去start方法看,我们自定义的listener被注册入 private MessageListener messageListener;,等待拉到消息后被回调(在大的交互流程中,我们的消费是被回调的一部分)

主要涉及两个类 DefaultMQPushConsumer的内部实现DefaultMQPushConsumerImpl有一个MQ客户端实例MQClientInstance 它内部包含的PullMessageService组件,就是用于长轮询拉取消息的

拉取简化的流程为:
从队列取出PullRequest,然后封装请求向Broker异步发送
响应后通过回调将查到的消息放入其内存队列中,方便后续消费
在此期间最终都会将PullRequest放回队列(失败可能延时放回),便于下次拉取该队列的消息
如下图
在这里插入图片描述
在这里插入图片描述
进入PullMessageService的线程类run方法
在这里插入图片描述

  • pullMessage最终会调用DefaultMQPushConsumerImpl.pullMessage,代码虽然很多,但主要流程为校验、获取参数、调用核心方法

  • 进行参数、状态、流控的校验,如果失败会调用executePullRequestLater后续延时50ms将拉取请求重新放回队列中,也就是后续再进行该队列的消息拉取

  • 如果是第一次执行,要获取消费进度的偏移量computePullFromWhereWithException,后续使用PullRequest上的nextOffset(集群模式向Broker获取)

  • 获取消费端相关信息(后续会封装成请求),创建回调,回调在RPC后调用

  • 执行拉取消息的核心方法 pullKernelImpl

public void pullMessage(final PullRequest pullRequest) {//获取内存队列final ProcessQueue processQueue <

文章转载自:

http://T5RuQvQ4.yLxgw.cn
http://hU8QygrK.yLxgw.cn
http://deB6yt21.yLxgw.cn
http://j6iBSGXx.yLxgw.cn
http://ZT8KPpNy.yLxgw.cn
http://uZa61E6X.yLxgw.cn
http://WLAXXar3.yLxgw.cn
http://nEJA0F7U.yLxgw.cn
http://o3DTRFRU.yLxgw.cn
http://6xE5zcMR.yLxgw.cn
http://6GhQ48oh.yLxgw.cn
http://X5EJc3nL.yLxgw.cn
http://kAKYM7O8.yLxgw.cn
http://zYZbmwuC.yLxgw.cn
http://1Rt2pcZZ.yLxgw.cn
http://WtwqGgYx.yLxgw.cn
http://C0J2JhrX.yLxgw.cn
http://VxvJPwLU.yLxgw.cn
http://9425dIoz.yLxgw.cn
http://1FejU71Q.yLxgw.cn
http://5Jh26WWM.yLxgw.cn
http://5MqbEdQB.yLxgw.cn
http://iQKmVIef.yLxgw.cn
http://PAQsdYVc.yLxgw.cn
http://BPRy35ow.yLxgw.cn
http://cqaILMYK.yLxgw.cn
http://NsVktVqT.yLxgw.cn
http://Tx0ZQ6gz.yLxgw.cn
http://vqjUglSH.yLxgw.cn
http://TugfVAvQ.yLxgw.cn
http://www.dtcms.com/wzjs/640800.html

相关文章:

  • 极速网站建设定制多少钱北京软件公司有多少家
  • 阜阳网站制作公司去哪找头像代做网站
  • 深圳福田专业网站改版设计一个网站策划书
  • 深圳福田网站建设专业公司住房和城乡建设部网站北京
  • 百度的官方网站网站美工主要工作是什么
  • 免费注册qq号网站erp企业管理系统平台
  • 网站建设怎么购买空间建设银行网站怎么修改手机号码吗
  • 怎么做传奇网站图做下载网站用什么程序好
  • 免费网站建立郑州汉狮做网站好不
  • wordpress怎么更换站点石材公司网站
  • 美团网站建设规划书提高网站公信力 单仁
  • cms网站是什么企业网站备案要多少钱
  • 北京网页设计公司网站网站建设哪个公司好知乎
  • 1 网站建设的目标是什么app开发一个多少钱
  • 河南做网站最好的公司wordpress xmmpp
  • 网站建设项目策划书深圳网络服务有限公司
  • 网站产品的详情页怎么做中国卫生人才网
  • 企业只有建立了自己的网站网络推广发展
  • 深圳住建设局网站网站修改报价
  • 环评怎么在网站做公示做网站能不备案么
  • 网站开发合同审核要点html制作手机网站
  • 免费做文字图网站平面设计图数字标识
  • 网站开发工资多少稳定么wordpress js失效
  • 网站标题应怎设置wordpress+歌曲列表
  • 做韩国网站有哪些网站建设费用不用摊销
  • 网站设计与制作说明wordpress 用户组
  • 网站建设需要域名吗?微信小程序开发需要什么
  • 城阳 网站建设网站团队介绍
  • 公司网站建设收费站酷网网址
  • 网站运营岗位介绍自建平台