浅谈RocketMQ

RocketMQ的一些理解

什么是RocketMQ?
一款纯java、分布式、队列模型的消息中间件。

执行流程与各个区域的解释
Rocket一共有四个区域,有两个最主要的功能一个是nameServer注册中心,一个是borker保存消息数据的。生产者生产消息,nameServer注册中间是专门治理管理borker,真正的消息是存在borker中,消费者消费消息。
首先,生产者要生产消息,生产的消息是要存在borker中,但是呢,borker中默认为4个队列用于存储消息,不知道存到哪个里面,那么就会去询问nameServer注册中心,他会告诉你,哪个borker是可用的,会告诉你哪个可用,并得到borker的ip地址和端口号,并连上borker,就可以将消息存在borker。
消费者要消费消息,监听消息先连接到nameServer,然后注册中心会给你一个监听的borker地址,然后完成监听。
消息的存储是分级别的,分一级消息(topoc),二级消息(Tag),一个大的业务叫做一级消息,相当于主标题,比如商品消息,商品的上架和下架对应的就是二级消息,也就是副标题。并且消息是以队列的形式存在borker中,默认是4个队列,4个队列不是根据名称进行区分的,而是有索引的概念(0,1,2,3),用索引来区别存在哪个队列。
由于我们业务不断庞大,生产者消费者可能有很多,此时我们可以进行分组,RocketMq有个组的概念

消息的模式
消息的模式分为两种一个是集群模式,也成为负载均衡模式,为默认模式,通过负载均衡来找具体的某一台服务器来完成业务的处理,1对1的关系。一个生产者生产消息,只能被一个消费者消费消息。另一种为广播模式也是发布订阅模式,一个生产者生产下消息可以被多个消费者监听消费消息。

RocketMq的应用场景
流量削峰:一般网站的用户流量很稳定,突然间有大量用户涌入,此时服务器压力过大容易宕机,我们可以先把消息存在MQ中,服务器进行监听。
异步解耦:使用耦合度降低
顺序消息:使用的是队列模式,先进先出原则
分布式事务消息(只有RocketMQ有这个功能)

RocketMq的集群部署方式
1、有单主机模式,配置简单,但是风险大,一旦borker出现宕机,整个服务器就会不可用。
2、多主主机模式:单个机器宕机时,不会对应用出现问题,消息不会丢失,但是当一台机器宕机时,这台机器的消息也会不可用。
3、多主多备模式(同步):当生产者生产消息时,会向主机保存消息,此时备用机也会保存消息,当备用机保存成功时会给主机返回一个成功消息,这时主机才会向生产者发送成功信息。这种方式可以解决消息丢失问题,但是效率慢。
4、多主多备模式(异步):当生产者生产消息时,会向主机保存消息,此时只要主机保存成功就向生产者发送消息,不管备用机有没有保存成功。这种方式效率高,不能解决消息丢失问题。

注:未经同意禁止转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值