自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (3)
  • 收藏
  • 关注

原创 九、RocketMQ Remoting(网络层)

1.问题RocketMQ线程模型是如何设计的 哪些请求走了10909端口,哪些走10911端口呢 如何实现长连接 如何实现同步、异步调用的超时控制2.核心实现1.类图doc/cn/image/rocketmq_design_3 2.服务端NettyRemotingServer 1.构造方法中,完成公共线程池的初始化 2.useEpoll:是否使用epoll->初始化netty的boss以及worker 条件:islinux && nettySer

2020-06-28 22:56:18 969 1

原创 八、RocketMQ事务消息全流程解析

1.交互流程 解决了Producer端的本地事务和消息发送的原子性问题。并没有解决Producer端本地事务、消息发送、消息消费三者的一致性问题。消息消费目前仅是靠MQ本身的消息可靠性来保证。 2.类设计 1.事务消息是普通消息的一种特例,基本的流程和普通消息是一样的。所以在实现的过程中进行了分层抽象,从而避免了对RocketMQ原有存储机制的修改。...

2020-05-02 12:36:12 713

原创 七、RocketMQ消息长轮询(Longpolling)与FileRegion优化

1.长轮询概述 背景:当broker端无数据时,即相应为空,consuemr不断拉取,对broker造成压力,那应该采用何种方式? 长轮循:长轮循并不是真正的推送;长轮循是传统的轮循技术的变种,但它允许模拟推送的机制在一些情况下:安全验证等。 2.Long Polling in RocketMq 1.consumer发送request,broker通过网络层拿...

2020-05-02 12:26:31 540

原创 六、RocketMQ消息定时消息

DelayLV:共有18档次,0到17,每个LV对应一个consumeQueue。时间间隔配置在broker.conf,messageDelayLevel,默认值1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h,空格分割,支持4种时间单位:s、m、h、d。 ScheduleMessageService线程,启动时候给所有的延...

2020-05-02 12:20:46 551

原创 五、RocketMQ消息消费重试

1.consumer prepare:消费者启动,订阅正常的topic(包含tag)以及一个%RETRY%consumergroup的topic,并将订阅关系(SubscriptionData)以心跳方式上传给broker。consumer会与所有的broker建立连接发送心跳。 2.consumer经过RebalanceService.doRebalance后,开始pull message...

2020-05-02 12:19:30 1306 3

原创 四、RocketMQ消息消费总览

1.消费者启动 2.消息消费总览 1.线程ReblanceService: 1.作用: a.Rebalanceservice线程每隔20s对消费者订阅的主题进行一次队列重新分配,每一次分配都会获取主题的所有队列、从 Broker 服务器实时查询当前该主题该消费组内消费者列表,对新分配的消息队列会创建对应的 PullRequest 对象。在一个 JVM 进程中,同...

2020-05-02 12:10:56 927

原创 三、RocketMQ消息存储-全流程解析|存储文件介绍|内存映射

1.消息写入全流程解析2.消息写入依赖类时序正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消转存失败重新上传取消3.CommitLog文件 一个消息的日志文件,是如何存到磁盘中?rocketmq vs kafka Kafka:一个topic...

2020-04-20 01:07:22 1069

原创 二、RocketMQ消息发送-全流程交互解析

RocketMQ消息发送消息发送的高可用设计 生产者感知broker宕机是需要时间的,生产者本地缓存需要定时任务周期刷新(30s),例如在两台Broker组成的集群中a:q0,q1,q2,q3)b:q0,q1,q2,q3,按照轮询算法,如果上一次选择的是a:q0队列,当broker宕机后,RocketMQ如何避免再次发送到broker a 造成重试后还是失败? produce...

2020-04-13 23:43:34 1390

原创 一、RocketMQ总体架构|参与者如何通信的?

RocketMQ总体架构各参与者是如何通信的? nameServer集群:本身的高可用可通过部署多台NameServer服务器来实现,但彼此间互不通信,也就是NameServer服务器之间在某一时刻的数据并不完全相同,但保证多台NameServer的最终一致性。NameServe集群可以理解为无状态的。 生产者: 某一时刻只会连接一台namerServer,拉取主题的配置信息;...

2020-04-13 18:41:36 378

图解设计模式 pdf 下载

权威指南,内容详尽,概念清洗,案例丰富,适合阅读。

2019-03-28

从Paxos到Zookeeper分布式一致性原理与 pdf

从Paxos到Zookeeper分布式一致性原理与实践,解析Zookeeper的原理与实现,很好的一本书

2019-03-14

REDIS开发与运维 ,付磊,张益军编著 ,P442 ,2017.02

REDIS开发与运维:作者不仅详细介绍Redis运维经验,而且深入剖析底层实现,让读者不仅知其然,也知其所以然。

2018-03-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除