- 博客(3)
- 收藏
- 关注
原创 CMS垃圾回收:停顿短却有碎片与浮动垃圾之困
重点部分,GC Roots继续遍历对象图,此时用户线程也可以继续工作,但这样就会衍生出问题,初始标记时A a=new A(),但是在并发阶段a=null,这样导致GC看到的对象关系图谱已过时,这就是为什么需要接下来的Remark;CMS清理垃圾 主要分为4个节点,初始标记->并发标记 ->重新标记->清理,初始标记和重新标记时都会有STW(Stop The World)出现,即当前只有GC线程可以获取CPU执行权限,用户线程被挂起。从GC Roots出发,找到能直接关联的对象,停顿时间很短,但仍需STW;
2026-10-06 21:35:18
160
原创 RocketMQ消息消费
RocketMQ消费模式对比及关键机制解析 摘要: RocketMQ支持集群消费和广播消费两种模式,核心区别在于消息分配方式:集群模式下每个Queue消息仅被一个消费者处理,通过Rebalance机制实现负载均衡;广播模式下所有消费者都会消费全部消息。消费者采用客户端负载均衡,通过主动Pull+长轮询+回调机制实现伪Push效果。消费位点offset在集群模式下由Broker集中管理,广播模式下由各消费者自行维护。RocketMQ坚持至少消费一次原则,异常场景可能重复消费,需业务方实现幂等处理。关键机制还包
2026-07-15 11:07:31
236
原创 RocketMQ架构原理八股面试
RocketMQ架构采用生产者→NameServer→Broker→消费者的流程。NameServer作为无状态路由中心,通过Broker定期上报(默认30秒)维护Topic路由信息,客户端每10秒刷新路由缓存。Broker不直接同步路由,而是各自维护配置并通过NameServer汇总。消息写入时,生产者选择写队列发送至Broker的CommitLog,消费者从分配的读队列拉取消息,失败消息会进入死信队列。队列机制中,Topic默认创建4个读写队列(实际4个队列兼具读写功能),可通过配置实现读写队列数分离(
2026-07-12 15:06:47
236
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅