会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
tomj2ee
博客园
首页
新随笔
联系
订阅
管理
2022年9月23日
rocket5.0支持延时队列
摘要: 刚刚查看了rocketmq5.0的发布的源码,新增了不少功能,最关心的是居然支持延时队列了,对于大部分人来说还是方便了很多。 我们来看看是如何使用的 //定时/延时消息发送 MessageBuilder messageBuilder = null; //以下示例表示:延迟时间为10分钟之后的Unix
阅读全文
posted @ 2022-09-23 16:30 tomj2ee
阅读(554)
评论(0)
推荐(0)
2022年6月8日
java通过socket实现https get 请求网页
摘要: 1. 首先要初始化ssl context SSLContext context = SSLContext.getDefault(); socket = (SSLSocket) context.getSocketFactory().createSocket(); socket.setHandshake
阅读全文
posted @ 2022-06-08 16:18 tomj2ee
阅读(891)
评论(0)
推荐(0)
2022年4月16日
java class 文件格式解析
摘要: 前言 大约5年前,想研究javaassistant,cglib等字节码操作的相关类库,来对class进行增强,当要到要操作字节码的时候,发现无法继续下去了,看不懂,只能放弃。 学习jvm字节码,需要理解class的组成方式,对汇编,操作栈比较了解,无奈,只好重新学习编译原理,汇编等知识,再来看jvm
阅读全文
posted @ 2022-04-16 16:20 tomj2ee
阅读(389)
评论(0)
推荐(0)
2022年3月7日
rocketmq常见问题
摘要: rocketmq常见问题 以下是关于RocketMQ项目的常见问题 使用 「新创建的Consumer ID从哪里开始消费消息?」 1)如果发送的消息在三天之内,那么消费者会从服务器中保存的第一条消息开始消费。 2)如果发送的消息已经超过三天,则消费者会从服务器中的最新消息开始消费,也就是从队列的尾部
阅读全文
posted @ 2022-03-07 17:00 tomj2ee
阅读(568)
评论(0)
推荐(0)
2022年2月14日
spring boot 配置静态路径(404出现的坑)
摘要: 一 前言 最近有个项目,需要上传一个zip文件(zip文件就是一堆的html压缩组成)的压缩文件,然后后端解压出来,用户可以预览上传好的文件。 查看资料,spring boot对静态文件,可以通过配置路径的方式来实现。 @Slf4j @Configuration public class WebMv
阅读全文
posted @ 2022-02-14 20:09 tomj2ee
阅读(1024)
评论(0)
推荐(0)
2022年1月28日
redis分析系列之set命令
摘要: 前言 最近研究下redis源码,现在从最基本的命令行操作来分析,redis是如何处理命令操作的 1. redis的set命令操作 我们在redis-cli执行下面的命令 set c c debug 发现 t_string.c ,执行了 void setCommand(client *c) 其中 cl
阅读全文
posted @ 2022-01-28 12:23 tomj2ee
阅读(5612)
评论(0)
推荐(0)
2022年1月18日
rocketmq延迟队列(延时消息)精确到秒级实现(实现总结编)
摘要: 前言篇: 为了节约成本,决定通过自研来改造rocketmq,添加任意时间延迟的延时队列,开源版本的rocketmq只有支持18个等级的延迟时间, 其实对于大部分的功能是够用了的,但是以前的项目,全部都是使用了阿里云的rocketmq,原因是不同的供应商的订单的延时时间是不同的 (部分供应商的订单未支
阅读全文
posted @ 2022-01-18 10:12 tomj2ee
阅读(2485)
评论(4)
推荐(2)
2022年1月17日
rocketmq实现延迟队列精确到秒级实现方案4-基于rocketmq 默认支持18个等级来改造
摘要: rocketmq开源版本支持18个等级的延迟方案, 如果要支持任意时间延时, 可以基于rocketmq已有的level来改造,传入一个时间,计算出最接近的等级,投递出去,当消息到达时候, 判断是否到了时间,如果没有,继续计算出最接近的等级投递,一直到超时时间为止 这个方案有个缺陷,在没有到达超时时间
阅读全文
posted @ 2022-01-17 20:26 tomj2ee
阅读(328)
评论(0)
推荐(0)
rocketmq实现延迟队列精确到秒级实现方案3-时间轮和秒级文件实现
摘要: 时间轮和秒级文件实现原理图 这种方案比较简单实现,通过秒级时间,建立对应的文件夹,只要相同的时间超时的消息,就在同一个目录,通过msgid保证文件不重复,等到了时间后,就扫描对应的文件夹的文件,发送到队列中,写入commitlog即可。 当然了,我们可以先缓冲一定时间的文件夹文件,这样效率高一些。
阅读全文
posted @ 2022-01-17 20:24 tomj2ee
阅读(815)
评论(0)
推荐(0)
rocketmq实现延迟队列精确到秒级实现方案2-时间轮和delay-file实现
摘要: 上图是通过RocketMQ源码分析一个实现原理方案示意图。 分为两个部分: 消息的写入消息的Schedule 在写入CommitLog之前,如果是延迟消息,按照每10分钟写入delayfile文件,对于快到时间执行的,直接写入时间轮,并且写入delayfile,时间轮每秒钟执行,如果时间到了,就执行
阅读全文
posted @ 2022-01-17 20:14 tomj2ee
阅读(1435)
评论(0)
推荐(0)
下一页
公告
点击右上角即可分享