rabbitmq多租户环境隔离(虚拟主机)

场景:线下测试经常会有多租户配置。
数据库通过容器的方式达到隔离;
redis通过16个database,也达到了隔离;
rabbitmq是否也可以进行隔离,而不是部署多个rabbitmq中间件服务?
在此,引入rabbitmq的v_host虚拟主机,一样也可以达到隔离的目的;

1、创建脚本

## 1、创建兰州的rabbitmq虚拟主机v_lanzhou,为了规范化,建议以v_开头
rabbitmqctl add_vhost v_lanzhou
## 2、创建兰州用户,并设置用户和密码为lanzhou
rabbitmqctl add_user lanzhou lanzhou
## 3、为兰州用户配置兰州虚拟主机的所有权限
rabbitmqctl set_permissions -p v_lanzhou lanzhou ".*" ".*" ".*"
rabbitmqctl set_permissions -p v_lanzhou lanzhou "^error.*" ".*log$" ".*"
## 4、如果想让lanzhou用户能登录管理端,需要将其设置为管理员;如果不设置,客户端可以连接lanzhou用户,但是lanzhou用户不可以登录管理端;
rabbitmqctl set_user_tags lanzhou administrator

2、辅助脚本

## 查看虚拟主机列表
rabbitmqctl list_vhosts
## 查看用户列表:
rabbitmqctl list_users
## 删除虚拟主机
rabbitmqctl delete_vhost lanzhou
## 查看拥有某虚拟主机的用户列表
rabbitmqctl list_permissions -p v_lanzhou
## 查看某用户列表拥有哪些虚拟主机的权限
rabbitmqctl list_user_permissions lanzhou

rabbitmq多租户环境隔离(虚拟主机)_第1张图片

3、客户端连接

spring:
  rabbitmq:
    host: 100.60.9.200
    virtual-host: v_lanzhou
    port: 5672
    username: lanzhou
    password: lanzhou

你可能感兴趣的:(#,Linux相关操作,java-rabbitmq,rabbitmq,分布式)