Rocketmq技术分享

1.架构图及基本概念

2.基本概念

NameServer

两个功能

1.接收broker请求,注册broker路由信息

2.接收producer(发消息前) consumer(定时获取)请求,根据topic获取路由信息

Broker

功能:接收,存储,pull,转发消息

与NameServer交互:每个broker与name server集群中所有节点建立长连接,broker启动后将自己注册到nameServer,随后每个30s定期上报topic路由信息

生产者

与name server集群中一个节点建立长连接,定时读取路由信息(缓存本地),消息发送到master broker

消费者

与name server集群中一个节点建立长连接,订阅可以是master 或slave broker

topic

逻辑概念,消息的一级分类,topic分片

Queue

queue数量

this.defaultTopicQueueNums = 4;

与消费者关系,消费者小与Queue数量,平均分配策略,分配队列,多余consuemr不能消费消息

Queue是Topic在一个Broker上的分片等分为指定份数后的其中一份,是负载均衡过程中资源分配的基本单元。

tag

Topic下的次级消息类型/二级类型,业务细分,灵活控制

consumer.subscribe("TopicBroadcast", "TagA || TagC || TagD");

Producer 与 Producer Group

警告:考虑提供的生产者在发送消息时足够强大,每个生产者组只允许一个实例,以避免对生产者实例进行不必要的初始化

Consumer 与 Consumer Group

消费组 服务集群部署,及启动多个消费者,属于一个集群中。

消息种类

按发送特点分

1.同步

发送后,会阻塞到mq服务端发回响应。

2.异步

发送后,不等待服务端响应立即返回,继续发送下一个数据包;对比同步耗时在哪,broker响应时间。

3.单向

功能划分

普通,顺序,广播,延时,批量,事务,定时,延时

服务搭建

配置文件说明,管理台说明

4.怎么用:集成springBoot,及原理

5.使用场景,及基本方法,举例订单 代码设计,幂等

6.部分实现原理

发送

流程:msg-broker-queue

发送前明确topic,根据topic到nameServer获取broker注册信息(master),负载均衡算法,确定哪一个broker。

MessageQueue topic broker queue关系

1.根据topic获取路由信息,包含topic所有队列

2.取重试次数,选择发送队列,跳过上次失败的broker

3.设置header,构建RemotingCommand,发送

6.2 消费端消费原理,如何监听

消费

消息模式:广播 集群,消费组,消费者

pull push 长轮询

RocketMQ消息推模式的实现基于拉模式,在拉模式上包装一层,一个拉取任务完成后开始下一个拉取任务。

消息队列负载机制遵循一个通用的思想:一个消息队列同一时间只允许被一个消费者消费,一个消费者可以消费多个消息队列。

7.消息存储

8.通讯原理

8.1 场景:

producer,consumer -> broker

procuer,consumer(查询路由信息),broker(注册路由信息) -> NameServer

broker每隔30向nameServer上报信息,发送单向消息

8.2 Netty 

编码解码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值