阿里云 rocketMq 延时消息】的更多相关文章

上一节消息重试里面提到了重试的消息可以被延时消费,其实除此之外,用户发送的消息也可以指定延时时间(更准确的说是延时等级),然后在指定延时时间之后投递消息,然后被consumer消费.阿里云的ons还支持定时消息,而且延时消息是直接指定延时时间,其实阿里云的延时消息也是定时消息的另一种表述方式,都是通过设置消息被投递的时间来实现的,但是Apache RocketMQ在版本4.2.0中尚不支持指定时间的延时,只能通过配置延时等级和延时等级对应的时间来实现延时. 一个延时消息被发出到消费成功经历以下几…
新的阅读体验:http://www.zhouhong.icu/post/157 一.业务需求 需要实现一个提前二十分钟通知用户去做某件事的一个业务,拿到这个业务首先想到的最简单得方法就是使用Redis监控Key值:在排计划时候计算当前时间与提前二十分钟这个时间差,然后使用一个唯一的业务Key压入Redis中并设定好过期时间,然后只需要让Redis监控这个Key值即可,当这个Key过期后就可以直接拿到这个Key的值然后实现发消息等业务. 关于Redis实现该业务的具体实现在之前我已经记过一篇笔记,…
由于公司的最近开始使用RocketMQ来做支付业务处理, 便开启了学习阿里云RocketMQ的学习与实践之路, 其中踩了不少的坑, 大部份是由于没有仔细查看阿里云的技术文档而踩的坑. 但是有一个非常大的坑, 确实是阿里云的技术文档里没有提及, 在文章的最后会给大家提及. 使用过程了封装的RocketMQ类库已开源在github: https://github.com/antaintan/easyrocketmq 公司的一位同事推荐使用RocketMQ, 并给出了几个流行MQ的对比, 资料来源, …
// MQ的应用场景有比如 订单变更消息可以通过产生这个事件的地方(比如前端调用后端的接口post一个订单,那么就是在这个mapping方法里做一个生产者[不过最好通过aop来实现,不然n多个接口都要写生产者代码],// 将客户端发来的订单消息存入MQ里,然后相关的服务[比如需要通知后台管理人员,那么通知后台管理人员的service肯定是一个consumer来消费该消息,不过的组的消费者是可以多次消费该消息的,这符合现实逻辑,我有一个消息// 需要让多个部门知道,那么这个部门其实就是消费组,但是…
行业背景 直播技术飞速发展让各个行业的用户体验呈现多样化和个性化,不同业务场景下创新实践满足大众对于音视频互动体验和参与的高标准要求.历经2020年初的巨变之后,以视频.游戏.电商.教育为主的互联网经济迎来飞速发展,"直播+"已成为一种趋势,广泛融入到人们的工作和生活中.在搭建直播系统时,大家会经常听到两个高频词:RTMP(Real Time Messaging Protocol)和OBS(Open Broadcaster Software). RTMP协议是由Adobe公司提出的一种…
一.为什么选择RocketMQ消息队列? 首先RocketMQ是阿里巴巴自研出来的,也已开源.其性能和稳定性从双11就能看出来,借用阿里的一句官方介绍:历年双 11 购物狂欢节零点千万级 TPS.万亿级数据洪峰,创造了全球最大的业务消息并发以及流转纪录(日志类消息除外): 在始终保证高性能前提下,支持亿级消息堆积,不影响集群的正常服务,在削峰填谷(蓄洪).微服务解耦的场景下尤为重要:这,就能说明RocketMQ的强大. 二.RocketMQ的特点和优势(可跳过看三的整合代码) 削峰填谷(主要解决…
rocketmq提供一种延时消息的解决方案,就是在特定的时间到了,消息才会被投递出去供consumer消费. 总体来是简单的场景是满足了,但是需要注意的是延时的时间是需要按照默认配置的延时级别去配置的,而不是随意设置消息的延时时间. 如果想不受延时级别的约束 可以参考之前的一遍文章http://blog.seoui.com/2017/08/19/delayqueue/ 默认的延迟级别 messageDelayLevel=1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m…
业务场景之类的请看另一篇生产者的实现: package com.ttt.eee; import com.aliyun.openservices.ons.api.Action; import com.aliyun.openservices.ons.api.Consumer; import com.aliyun.openservices.ons.api.ONSFactory; import com.aliyun.openservices.ons.api.PropertyKeyConst; impor…
rocketmq  的延时消息不能支持任意延时,她定义了18 个延时等级,并且我们可以指定这18 个延时等级的延时时间. 发送消息的时候只需在消息中指定 当前消息的 延时等级即可,并且这个延时消息不是立刻翻到目标消息队列的,rocketmq 定义了 18 个 不可见的 队列,延时消息都放在这里面(有点像  rabbitmq 的 死信队列),当这个消息延时到了以后才投递给正常队列. java 代码例子: 修改 18 个默认延时等级例子.…
搜索镜像 docker search rocketmq 查看镜像版本 如果要查看其它的镜像,只需要将其中的镜像名称foxiswho/rocketmq替换为其它镜像即可 curl https://registry.hub.docker.com/v1/repositories/foxiswho/rocketmq/tags\ | tr -d '[\[\]" ]' | tr '}' '\n'\ | awk -F: -v image='foxiswho/rocketmq' '{if(NR!=NF &…