RocketMQ知识盘点【壹】_Producer和NameServer

尽量少啰嗦。

1.部署组成

 

由图可知,rocketMq的运转至少需要4个组成部分:Producer(生产者),NameService(路由中心),Broker(消息服务费)和Consumer(消费者)。

下面依次总结。

 

2.Producer

2.1 消息发送方式

同步:producer发送消息后,等待broker返回发送结果。

异步:producer发送消息时,指定回调函数,发送消息后直接返回。后面实际发送结果,由broker通知回调函数,producer在另一个线程种异步处理。

单向:producer发送消息后,不关心发送结果直接返回。

2.2 消息发送

对于DefaultMQProducer消息发送者,默认发送消息超时时间是3s(sendMsgTimeout),发送失败重试次数是2次(retryTimesWhenSendFailed/retryTimesWhenSendAsyncFailed),消息最大长度是4M(maxMessageSize)。

消息发送失败时,重试有broker隔离机制。即将该broker的所有messageQueue都隔离,默认30s。也就是说30s内不向这些messageQueue发送消息。

sendLatencyFaultEnable=true启用。

2.3 批量发送

支持同一个topic的多条消息打包发送,但发送消息总长度不得超过maxMessageSize。

 

3.NameServer

Broker启动时会向所有NameServer注册,Producer在发送消息之前会从NameServer拿到Broker地址列表,然后根据负载均衡算法得出其中一台Broker并发送消息。因此,每台NameServer和每台Broker都是长链接。

Broker每隔30s向所有的NameServer发送心跳,NameServer接到后会更新lastUpdateTimeStamp,然后NameServer每隔10s扫描brokerLiveTable里的各Broker的lastUpdateTimeStamp,发现少于120s没有心跳的,则移除该Broker并关闭Socket连接。

 

RocketMQ知识盘点【壹】_Producer和NameServer

RocketMQ知识盘点【贰】_Broker和消息存储

RocketMQ知识盘点【叁】_Consumer

RocketMQ知识盘点【肆】_最佳实践

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值