Search code examples
spring-bootrabbitmqspring-amqpspring-cloud-streamspring-rabbit

virtualHost Not Creating on RabbitMQ server using application.yml springboot and from config server


Virtualhost are not getting created on RabbitMQ server based on configuration Do i have make sure VH aka Virtual Hosts on RabbitMQ . Am i missing some configuration. Please find the configuration below

application.yml

spring:
  rabbitmq:
    host: 127.0.0.1
    virtual-host: /defaultVH
    username: defaultUser
    password: defaultPassword
  cloud:
    stream:
      bindings:
        saviyntSampleQueueA:
          binder: rabbit-A
          contentType: application/x-java-object
          group: groupA
          destination: saviyntSampleQueueA
        saviyntSampleQueueB:
          binder: rabbit-B
          contentType: application/x-java-object
          group: groupB
          destination: saviyntSampleQueueB
      binders:
        rabbit-A:
          defaultCandidate: false
          inheritEnvironment: false
          type: rabbit
          environment:
            spring:
              rabbitmq:
                host: 127.0.0.1
                virtualHost: /vhA
                username: userA
                password: paswdA
                port: 5672
                connection-timeout: 10000
        rabbit-B:
          defaultCandidate: false
          inheritEnvironment: false
          type: rabbit
          environment:
            spring:
              rabbitmq:
                host: 127.0.0.1
                virtualHost: /vhB
                username: userB
                password: paswdB
                port: 5672
                connection-timeout: 10000

bootstrap.yml

############################################
# default settings
############################################
spring:
  main:
    banner-mode: "off"
  application:
    name: demo-service
  cloud:
    config:
      enabled: true #change this to use config-service
      retry:
        maxAttempts: 3
      discovery:
        enabled: false
      fail-fast: true
      override-system-properties: false

server:
  port: 8080

Added default spring boot added Enable binding

@EnableBinding({MessageChannels.class})
@SpringBootApplication
public class Configissue1124Application {

    public static void main(String[] args) {
        SpringApplication.run(Configissue1124Application.class, args);
    }

}

Now simple straightforward massage channel to to dispatch massage

interface MessageChannels {


    @Input("saviyntSampleQueueA")
    SubscribableChannel queueA();

    @Input("saviyntSampleQueueB")
    SubscribableChannel queueB();
} 

When i ran the Boot Application its not creating any Virtualhost on the system . i tried using config server buy providing same configuration but still no luck can you please find if some thing am missing.

Thanks in Advance


Solution

  • The AMQP protocol (or RabbitMQ REST API) provides no mechanism to provision virtual hosts from the client.

    Virtual hosts must be provisioned manually on the server.