一、mq应用场景或者说是好处
- 异步处理,保证及时响应
- 应用程序解耦、跨语言
- 消除并发访问高峰(短时间内大量用户下单,则可以把这些下单请求放到mq中,让接收方根据指定的并发量慢慢执行)
二、mq实现方式
- amqp:就是一种协议,只要应用程序实现了这种协议,便可进行信息交互,和语言无关
- jms:是一种java接口,只能用于java语言
三、常用mq比较
- 性能排名:kafka(大数据用的多)>rabbitmq(基于amqp)>activemq(基于jms)
- 安全性排名:kafka<rabbitmq<activemq
四、工作原理
创建连接工厂(在连接工厂中可以配置虚拟主机)、通过连接工厂创建连接,通过连接创建通道,发起方通过通道创建交换机、队列、发送消息,接收方通过通道绑定队列、接收消息;交换机和队列由routing key绑定
1、生产者和消费者不是一个连接
2、一个连接中可以有多个channel(通道)
3、rabbitmq broker就是一个rabbitmq服务器,里面包含交换机和队列等
五、rabbitmq存储机制
不管是持久化的消息还是非持久化的消息都可以被写入到磁盘。持久化的消息在到达队列时就被写入到磁盘,并且如果可以,持久化的消息也会在内存中保存一份备份,这样可以提高 一定的性能,当内存吃紧的时候会从内存中清除。非持久化的消息一般只保存在内存中,在内存吃紧的时候会被换入到磁盘中,以节省内存空间,当内存有足够空间时会把数据从新从硬盘中取出放回到内存。这两种类型的消息的落盘处理都在 RabbitMQ的“持久层”中完成。
六、rabbitmq控制台操作
1、搭建rabbitmq
很基础,自行百度
2、创建用户
3、创建虚拟主机(相当于mysql中的数据库;队列隶属于虚拟主机,相当于数据库中的表)
若不创建具体的虚拟主机则默认往名字为/的虚拟主机中放
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/153429.html