rabbitmq实战读后感

历史

rabbitMQ 是一个消息队列的中间件主要体现在message queue ,rabbit为兔子来体现速度快。

mq的提出,是想在软件层面提出类似于硬件上的bus总线的产品,用于应用间的消息传递。

同时amqp (高级消息队列协议)标准的建立,使得rabbitmq在实现amqp协议的特性,能够基于协议本身来对消息队列进行配置。

相关概念

在消息队列的概念中存在关键的概念,消费者生产者。从现实世界其实可以将很多事务抽象成这两部分。

rabbitmq中包含关键几个部分就是:队列、交换机、信道、绑定。

信道是在tcp连接上建立的,在一个tcp连接上基于amqp协议建立信道抽象层,可以同时建立多条信道。这就避免了tcp断开和连接的消耗了。基于tcp特性当一个连接在发数据行为时,是无法进行收数据的操作(从tcp的层面理解)。如果抽象出send channel 和recv channel

就可以具有全双工的特性,同一时刻可以收发操作。

消息

一个消息被生产,发送到交换机,根据不同类型的交换机采用不同的策略将消息分发到队列

持久化

当交换机和队列duration设置为true时并不能保证消息的能够在重启后恢复。

消息同时需要设置delivery mode设置为2,而且消息最终需要处于到达持久化队列的状态。

一但消息被路由到非持久化队列上,该消息就不会持久化

消息的持久化会带来严重的性能消耗,磁盘和内存的读取速度差异较大。

事务

为了保证消息最终能够安全的道道queue,rabbitmq同时提供了事务,在消息传输的过程中会携带很多命令,一但消息失败就会执行回滚操作,性能消耗较大。

rabbitmq提出另一个解决方法,发送方确认机制来确保消息投递成功

虚拟机

rabbitmq提供vhost,虚拟主机,多租户模式,每个vhost是相互隔离的,就像不同的服务器虚拟机,交换机和队列彼此都不可见。rabbitmq默认vhost (/),每个用户至少绑定一个vhost。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值