title: Rabbitmq Exchanges vs Queues
body: <p>Im trying to do some basic testing with amqp using rabbitmq.  I wrote a simple python script with pika to create an amqp client.  I first did it sending messages directly to a queue.  This worked well and was able to monitor performance with the web rabbitmq managment tool as well as "rabbitmqctl list_queues".  I next tried to send messages to an exchange using multiple queues with the receiver listen on all queues.  Im confused because when I use the exchange I can not longer see the queues in the management tool or rabbitmqctl.  How do i monitor queues when using exchanges?</p>
  
  <pre><code>###########################################
  queue send code:
  ###########################################
  channel.queue_declare(queue='hello')
  
  msgCnt = 1
  
  while True:
      msg = "'Hello World! Msg Count: "+str(msgCnt)+"'"
      channel.basic_publish(exchange='',
                        routing_key='hello',
                        body=msg)
      print(" [x] Sent " + msg)
      msgCnt = msgCnt + 1
      time.sleep(1)
  
  ###########################################
  exchange send code:
  ###########################################
  queue = sys.argv[1]   #passing test.0001, test.0002 in diff clients.
  channel.exchange_declare(exchange='test', type='topic')
  
  msgCnt = 1
  
  while True:
      msg = "'Hello World! Msg Count: "+str(msgCnt)+"'"
      channel.basic_publish(exchange='test',
                        routing_key=queue,
                        body=msg)
      print(" [x] Sent " + msg)
      msgCnt = msgCnt + 1
      time.sleep(1)
  
  ###########################################
  consumer code:
  ###########################################
  channel.exchange_declare(exchange='test',
                           type='topic')
  
  result = channel.queue_declare(exclusive=True)
  queue_name = result.method.queue
  
  binding_keys = sys.argv[1:]
  
  for binding_key in binding_keys:
      channel.queue_bind(exchange='test',
                         queue=queue_name,
                         routing_key=binding_key)
  
  def callback(ch, method, properties, body):
      print(" [x] Received %r" % body)
  
  channel.basic_consume(callback,
                        queue=queue_name,
                        no_ack=True)
  
  print(' [*] Waiting for messages. To exit press CTRL+C')
  channel.start_consuming()
  </code></pre>