RebbitMQ的初步了解

RebbitMQ的初步了解

消息队列有哪些作用

1 解藕:使用消息队列来作为两个系統的通讯方式,两个系统不需要相互依赖了 2.异步:系统A给消费队列发送完消息之后,就可以继续做其他事情了
3. 流量削峰:如果使用消息队列的方式来调用某个系統,那么消息将在队列中排队,有消费者自己控制消费速度

死信队列是什么?延时队列是什么?

  1. 死信队列也是一个消息队列,它是用来存放那些没有成功消费的消息的,通常可以用来作为消息重试
    2.延时队列就是用来存放需要在指定时间被处理的元素的队列,通常可以用来处理一些具有过期性操作的业务,比如十分钟内 未支付则取消订单

Kafka为什么比RocketMQ的吞吐量要高

Kafka的生产者采用的是异步发送消息机制,当发送一条消息时,消息并没有发送到Broker而是缓存起来,然后直接向业务返回成 功,当缓存的消息达到一定数量时再批量发送给Broker。这种做法减少了网络io,从而提高了消息发送的吞吐量,但是如果消息 生产者宕机,会号致消息丢失,业务出错,所以理论上kafka利用此机制提高了性能却降低了可靠性。

如何保证消息的高效读写?

零拷贝:kafka和RocketMQ都是通过零拷贝技术来优化文件读写。
传统文件复制方式:需要对文件在内存中进行四次拷贝。
在这里插入图片描述
零拷贝:有两种方式,mmap和transfile (通过映射直接完成读写 减少两次拷贝)
在这里插入图片描述
在这里插入图片描述
Mmap 适合比较小的文件,通常文件大小不要超过1.5G ~2G之间。

Transfile没有文件大小限制。

RocketMQ当中使用Mmap方式来对他的文件进行读写。commitlog每次初始化空间1G

在kafka当中,他的index日志文件也是通过mmap的方式来读写的。在其他日志文件当中,并没有使用零拷贝的方式。

kafka使用transfile方式将硬盘数据加载到网卡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值