美文网首页
RabbitMQ之代码新建virtual host

RabbitMQ之代码新建virtual host

作者: 瞿大官人 | 来源:发表于2019-10-09 12:36 被阅读0次

前言

virtual host 的主要作用是隔离、权限。
隔离:发送的消息的时候只有在virtual host下的满足条件的队列才能接受到消息,比如现在存在virtual1virtual2,如果这两个virtual host中都存在exchangeA和队列queueA,队列的路由键为keyA,这个时候往virtual1发送exchangeA ,keyA,只有virtual1的队列能接受到消息。
权限:新建完virtual host就要指定该virtual host是属于哪个账户的,这样就可以控制哪些帐号使用哪些virtual host

代码新建virtual host

依赖包

<dependency>
  <groupId>com.rabbitmq</groupId>
  <artifactId>http-client</artifactId>
  <version>3.2.0.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-web</artifactId>
  <version>5.1.5.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpclient</artifactId>
  <version>4.5.6</version>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.9.9.3</version>
</dependency>

代码

这里介绍下com.rabbitmq.http-client包,这个包专门是用来以restful的形式请求rabbit开放的api接口,比如常见的新建交换机、新建队列、获取队列等都包含在Client类中,如果配合定时任务,完全可以监控rabbitmq的消息堆积。以下是新建virtual host的代码。

   public static void main(String[] args) throws MalformedURLException, URISyntaxException, JsonProcessingException {
        String api = "http://192.168.5.4:15672/api";

        Client client = new Client(api, "admin", "admin");
      // 新建/card virtual host
        client.createVhost("/card");
        UserPermissions userPermissions = UserPermissions.FULL;
      // 将新建的virtual host 授权给 admin帐号
        client.updatePermissions("/card", "admin", UserPermissions.FULL);
    }
image.png

相关文章

网友评论

      本文标题:RabbitMQ之代码新建virtual host

      本文链接:https://www.haomeiwen.com/subject/eycryctx.html