RabbitMQ安装与基本概念
安装
本文只记录如何在Linux(Debian)上安装。
参考官网安装文档,直接把“PackageCloud Quick Start Script”部分的脚本复制粘贴运行即可。
在Linux上安装完成后,需要启用服务:
1 |
|
配置
管理界面开启
1 |
|
管理网页端将会在本地的15672端口上,浏览器打开即可。
管理账号与密码
方法一,创建新用户并设置权限组
创建用户并设置密码
1
rabbitmqctl add_user 新用户名 新用户密码
设置用户组?
1
rabbitmqctl set_user_tags 刚刚创建的用户名 administrator
设置用户权限
1
rabbitmqctl set_permissions -p / 刚刚创建的用户名 "." "." ".*"
方法二,修改配置文件(不推荐?但是网上的教程有人用这方法的)
我发现在我的3.11.0版本的RabbitMQ上都找不到一样的文件了,就不写了。
默认情况下,guest/guest只能本地登录。
至此,你已经可以使用RabbitMQ进行开发了。
RabbitMQ概念
RabbitMQ的5大核心概念:Connection(连接)、Channel(信道)、Exchange(交换机)、Queue(队列)、Virtual host(虚拟主机)。
Connection(连接)
每个producer(生产者)或者consumer(消费者)要通过RabbitMQ发送与消费消息,首先就要与RabbitMQ建立连接,这个连接就是Connection。Connection是一个TCP长连接。
Channel(信道)
Channel是在Connection的基础上建立的虚拟连接,RabbitMQ中大部分的操作都是使用Channel完成的,比如:声明Queue、声明Exchange、发布消息、消费消息等。
因为现在的程序都是支持多线程的,如果没有Channel,那么每个线程在访问RabbitMQ时都要建立一个Connection这样的TCP连接,对于操作系统来说,建立和销毁TCP连接是非常大的开销,在系统访问流量高峰时,会严重影响系统性能。
Virtual Host(虚拟主机)
一个Broker中可以有多个虚拟主机,每个都有一套自己的Exchange和Queue,同一个Virtual host中的Exchange和Queue不能重名,不同的Virtual host中的Exchange和Queue名字可以一样。
这样,不同的用户在访问同一个RabbitMQ Broker时,可以创建自己单独的虚拟主机,然后在自己的Virtual host中创建Exchange和Queue,很好地做到了不同用户之间相互隔离的效果。
Queue(队列)
Queue是一个用来存放消息的队列,生产者发送的消息会被放到Queue中,消费者消费消息时也是从Queue中取走消息。
Exchange(交换机)
Exchange是一个比较重要的概念,它是消息到达RabbitMQ的第一站,主要负责根据不同的分发规则将消息分发到不同的Queue,供订阅了相关Queue的消费者消费到指定的消息。
分发规则有:
单收单发(简单模式)
工作队列
发布/订阅
路由匹配
主题模式(通配符)