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

网站首页一般做多大网站建设有哪些需要注意的关键细节

网站首页一般做多大,网站建设有哪些需要注意的关键细节,网站打不开怎么办,html5导航网站源码下载前言 上一节给大家讲了Rocket的顺序消息#xff0c;这一节和大家聊一下延迟消息#xff0c;关于顺序消息大家可以点下面这个链接直接看 RocketMQ的延迟消息 延迟消息 延迟消息就是指生产者发送消息之后#xff0c;消息不会立马被消费#xff0c;而是等待一定的时间之后…前言 上一节给大家讲了Rocket的顺序消息这一节和大家聊一下延迟消息关于顺序消息大家可以点下面这个链接直接看 RocketMQ的延迟消息 延迟消息 延迟消息就是指生产者发送消息之后消息不会立马被消费而是等待一定的时间之后再被消息 RocketMQ的延迟消息用起来非常简单只需要在创建消息的时候指定延迟级别之后这条消息就成为延迟消息了 Message message  new Message(sanyouTopic, java日记 0.getBytes()); //延迟级别 message.setDelayTimeLevel(1);虽然用起来简单但是背后的实现原理还是有点意思我们接着往下看 RocketMQ延迟消息的延迟时间默认有18个级别不同的延迟级别对应的延迟时间不同 RocketMQ内部有一个Topic专门用来表示是延迟消息的叫SCHEDULE_TOPIC_XXXXXXXX不是占位符就是XXXX RocketMQ会根据延迟级别的个数为SCHEDULE_TOPIC_XXXX这个Topic创建相对应数量的队列 比如默认延迟级别是18那么SCHEDULE_TOPIC_XXXX就有18个队列队列的id从0开始所以延迟级别为1时对应的队列id就是0为2时对应的就是1依次类推 那SCHEDULE_TOPIC_XXXX这个Topic有什么作用呢 这就得从消息存储时的一波偷梁换柱的骚操作了说起了 当服务端接收到消息的时候判断延迟级别大于0的时候说明是延迟消息此时会干下面三件事 将消息的Topic改成SCHEDULE_TOPIC_XXXX 将消息的队列id设置为延迟级别对应的队列id 将消息真正的Topic和队列id存到前面提到的消息存储时的额外信息中 之后消息就按照正常存储的步骤存到CommitLog文件中 由于消息存到的是SCHEDULE_TOPIC_XXXX这个Topic中而不是消息真正的目标Topic中所以消费者此时是消费不到消息的 举个例子比如有条消息Topic为sanyou所在的队列id 1延迟级别 1那么偷梁换柱之后的结果如下图所示 代码如下 所以从上分析可以得出一个结论 所有RocketMQ的延迟消息最终都会存储到SCHEDULE_TOPIC_XXXX这个Topic中并且同一个延迟级别的消息在同一个队列中 在存消息偷梁换柱之后实现延迟消费的最关键的一个步骤来了 BocketMQ在启动的时候除了为每个延迟级别创建一个队列之后还会为每个延迟级别创建一个延迟任务也就相当于一个定时任务每隔100ms执行一次 这个延迟任务会去检查这个队列中的消息有没有到达延迟时间也就是不是可以消费了 前面的结论每个队列都有一个ConsumeQueue文件可以通过ConsumeQueue找到这个队列中的消息 一旦发现到达延迟时间可以消费了此时就会从这条消息额外存储的消息中拿到真正的Topic和队列id重新构建一条新的消息将新的消息的Topic和队列id设置成真正的Topic和队列id内容还是原来消息的内容 之后再一次将新构建的消息存储到CommitLog中 由于新消息的Topic变成消息真正的Topic了所以之后消费者就能够消费到这条消息了 所以从整体来说RocketMQ延迟消息的实现本质上就是最开始消息是存在SCHEDULE_TOPIC_XXXX这个中转的Topic中 然后会有一个类似定时任务的东西不停地去找到这个Topic中的消息 一旦发现这个消息达到了延迟任务说明可以消费了那么就重新构建一条消息这条消息的Topic和队列id都是实际上的Topic和队列id然后存到CommitLog 之后消费者就能够在目标的Topic获取到消息了 总结 RocketMQ的延迟消息是一种特殊的消息类型当消息写入到Broker后不能立刻被消费者消费需要等待指定的时长后才可被消费处理。这种消息的延迟时长不支持随意时长的延迟是通过特定的延迟等级来指定的。RocketMQ默认支持18个等级的延迟消息延时等级定义在RocketMQ服务端的MessageStoreConfig类中的特定变量中。 在实际应用中不使用定时器利用RocketMQ的延迟消息可以实现定时任务的功能适用于一些特定的场景如电商交易系统的订单超时未支付自动取消订单等。 其实现原理主要是消息在RocketMQ Broker端的流转过程中对延迟消息进行特殊处理计算这条延迟消息需要在什么时候进行投递。投递时间等于消息存储时间加上延迟级别对应的时间。 联系方式 关于文章中大家有任何疑问可以通过关注公众号《编程乐学》进行留言同时公众号还有更多有趣的项目以及关于学习编程的笔记资料大家可以看看欢迎大家进行留言。
http://www.pierceye.com/news/59595/

相关文章:

  • 网站域名ip查询seo推广优化排名软件
  • 贵阳网站建设推广清除网站黑链
  • 网站源码分享平台一级造价工程师报名时间2023年
  • 宜昌市建设监理协会网站网站开发字体
  • 长沙企业网站建设较好的公司龙岗永湖网站建设
  • 做网站公司能赚钱吗策划公司名称
  • 网站优化一年多少钱seo软件推广哪个好
  • 建设银行的财务网站科协网站页建设的意义
  • 网站做流量推广的方式微信小程序管理平台入口
  • 宽屏绿色新闻资讯网站织梦模板郑州做网站排名
  • 邢台哪儿专业做网站网站运营情况怎么写
  • 装修公司网站源代码什么是软文营销
  • 南通优化网站费用xp优化大师
  • 北京规划建设 杂志 官方网站一流的高密网站建设
  • 吉林省住房城乡建设网站的品质网站建设
  • 做图的兼职网站网站的管理和维护
  • 南开集团网站建设最新体育新闻足球
  • 定制类网站专业网页制作服务商
  • 手机网站公司哪家好西安关键词网站排名
  • 直播类网站怎么做阳光创信-网站建设首选品牌
  • 行业门户网站推广做某个网站接口违法
  • 如何更改 网站 关键词防止访问网站文件夹
  • 建设网站分几个步骤wordpress多大
  • 新浪网站首页获取网站访客qq号码源码
  • 互联网工具型网站重庆沙坪坝有哪些大学
  • 建设部网站监理变更怎么建立网上销售平台
  • 宝华路桥建设集团网站湖南seo网站多少钱
  • 做网站跟做app哪个累浪尖设计集团有限公司
  • 简单门户网站开发网络运营是做什么的工作
  • 网站首页制作教程视频官方网站下载6966