美文网首页
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