每一个RabbitMQ服务器都能创建虚拟消息服务器,我们称之为虚拟主机。每一个vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的交换机、队列、绑定等,拥有自己的权限机制。
vhost之于Rabbit就像虚拟机之于物理机一样。他们通过在各个实例间提供逻辑上分离,允许为不同的应用程序安全保密的运行数据,这很有,它既能将同一个Rabbit的众多客户区分开来,又可以避免队列和交换器的命名冲突。
RabbitMQ提供了开箱即用的默认的虚拟主机“/”,如果不需要多个vhost可以直接使用这个默认的vhost,通过使用缺省的guest用户名和guest密码来访问默认的vhost。
vhost之间是相互独立的,这避免了各种命名的冲突,就像App中的沙盒的概念一样,每个沙盒是相互独立的,且只能访问自己的沙盒,以保证非法访问别的沙盒带来的安全隐患。
bash
RabbitMq 安装路径 ./sbin 目录中的rabbitmqctl工具来创建,如果是docker直接进入容器即可 rabbitmqctl add_vhost [vhost_name] rabbitmqctl delete_vhost [vhost_name] rabbitmqctl list_vhosts rabbitmqctl set_vhost_limits -p vhost_name '{"max-connections": 256}' rabbitmqctl set_vhost_limits -p vhost_name '{"max-queues": 1024}'
bash
rabbitmqctl add_user root root123456 rabbitmqctl set_user_tags root administrator rabbitmqctl set_permissions -p [vhost_name] root ".*" ".*" ".*"
bash
spring:
rabbitmq:
host: 192.168.6.1
port: 5672
username: root
password: root123456
virtual-host: dev
listener:
retry:
enabled: true
max-attempts: 3