本文介绍: RabbitMQ学习RabbitMQ相关概念Virtual host数据隔离SpringAMQP第一种 基本消息模型第二种 WorkQueues模型第三种 发布订阅模型(fanout交换机)fanout交换机实例第四种 Direct交换机direct交换机实例基于注解的方式声明——direct交换机第五种Topic交换机基于注解的方式声明——Topic交换机消息转换器配置JSON转换器RabbitMQ相关概念其中包含几个概念:1. publisher:生产者,也就是发送消息的一方2. consum
RabbitMQ相关概念
其中包含几个概念:
1. publisher:生产者,也就是发送消息的一方
2. consumer:消费者,也就是消费消息的一方
3. queue:队列,存储消息。生产者投递的消息会暂存在消息队列中,等待消费者处理
4. exchange:交换机,负责消息路由。生产者发送的消息由交换机决定投递到哪个队列。
5. virtual host:虚拟主机,起到数据隔离的作用(相当于独立的数据库)。每个虚拟主机相互独立,有各自的exchange、queue
Virtual host数据隔离
这里的用户都是RabbitMQ的管理或运维人员。目前只有安装RabbitMQ时添加的itheima这个用户。仔细观察用户表格中的字段,如下:
对于小型企业而言,出于成本考虑,我们通常只会搭建一套MQ集群,公司内的多个不同项目同时使用。这个时候为了避免互相干扰, 我们会利用virtual host的隔离特性,将不同项目隔离。一般会做两件事情:
创建用户hmall 并分配administrator权限
此时hmall用户是没有任何virtual host的访问权限
然后切切换用户hmall进行登录,并给项目创建一个单独的virtual host,进行项目之间的隔离
由于我们是登录hmall账户后创建的virtual host,因此回到users菜单,你会发现当前用户已经具备了对/hmall这个virtual host的访问权限了:
之前在virual host为/下创建的队列、交换机就看不到了。
SpringAMQP
RabbitMQ官方提供的Java客户端编码相对复杂,一般生产环境下我们更多会结合Spring来使用。而Spring的官方刚好基于RabbitMQ提供了这样一套消息收发的模板工具:SpringAMQP
第一种 基本消息模型
第二种 WorkQueues模型
第三种 发布订阅模型(fanout交换机)
fanout交换机实例
第四种 Direct交换机
direct交换机实例
基于注解的方式声明——direct交换机
第五种Topic交换机
基于注解的方式声明——Topic交换机
消息转换器
配置JSON转换器
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。