Fixup rabbitmq docs
[mirror/dsa-wiki.git] / input / doc / mq.mdwn
1 # MQ admin notes
2
3 ## The design is resilient
4 * There are two hosts, rapoport and rainier.
5 * The service will stay up if either is up.
6 * Individual connections will break, but the clients know how to reconnect
7 * All queues and exchanges configured to be created as durable by default
8
9 ## The design is reasonably secure
10 * All connections are over SSL, using the autoca host certs
11 * The default guest account has been removed
12 * All d.o machines have autogenerated passwords
13
14 ## Admin tools
15 * Web consoles
16   * https://rainier.debian.org:15671
17   * https://rapoport.debian.org:15671
18 * CLI tool
19   * go to either
20     * https://rainier.debian.org:15671/cli/
21     * https://rapoport.debian.org:15671/cli/
22   * Download the rabbitmqadmin tool and put in ~/bin
23   * set up ~/.rabbitmqadmin.conf.  Passwords on handel
24
25 Sample `.rabbitmqadmin.conf`:
26
27     [rainier]
28     hostname = rainier.debian.org
29     port = 15671
30     username = admin
31     password = XXX
32     ssl = True
33     ssl_ca_cert_file = /etc/ssl/debian/certs/ca.crt
34
35     [rapoport]
36     hostname = rapoport.debian.org
37     port = 15671
38     username = admin
39     password = XX
40     ssl = True
41     ssl_ca_cert_file = /etc/ssl/debian/certs/ca.crt
42
43 ## A word about terminology:
44 pubsub messaging involves a sender and a receiver.
45
46 The sender connects to an exchange, and publishes a message.  The sender
47 may or may not create the exchange during the course of that action.
48 During message sending, the sender declares a topic for the message.
49
50 Topics are just '.' separated strings, eg dsa.git.mail,
51 ftpteam.package.upload.clamav, etc.  They allow for two types of
52 wildcards.  dsa.git.* matches any single git repo but not
53 dsa.git.mail.commit.  #.clamav match anything ending in clamav, no
54 matter how many separators.
55
56 The receiver connects to a queue, binds it to an exchange with a topic
57 binding for a specific topic, and waits for a message.  If a message
58 submitted to the exchange matches the topic, it is routed to the
59 receiver queue, and the receiver gets it.
60
61 The tcp connection from a client to the MQ server is called a channel.
62 The protocol layer on top of the TCP connection is called a connection
63 (I know, good, right?).  The connection between a queue and an exchange
64 is called a binding.
65
66 ---
67 Sun, 26 Jan 2014 17:24:28 +0000