decommission: puppet doesn't have a mysql db anymore
[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:15672
17   * https://rapoport.debian.org:15672
18 * CLI tool
19   * go to either
20     * https://rainier.debian.org:15672/cli/
21     * https://rapoport.debian.org:15672/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 = 15672
30     username = admin
31     password = XXX
32     ssl = True
33
34     [rapoport]
35     hostname = rapoport.debian.org
36     port = 15672
37     username = admin
38     password = XX
39     ssl = True
40
41 ## A word about terminology:
42 pubsub messaging involves a sender and a receiver.
43
44 The sender connects to an exchange, and publishes a message.  The sender
45 may or may not create the exchange during the course of that action.
46 During message sending, the sender declares a topic for the message.
47
48 Topics are just '.' separated strings, eg dsa.git.mail,
49 ftpteam.package.upload.clamav, etc.  They allow for two types of
50 wildcards.  dsa.git.* matches any single git repo but not
51 dsa.git.mail.commit.  #.clamav match anything ending in clamav, no
52 matter how many separators.
53
54 The receiver connects to a queue, binds it to an exchange with a topic
55 binding for a specific topic, and waits for a message.  If a message
56 submitted to the exchange matches the topic, it is routed to the
57 receiver queue, and the receiver gets it.
58
59 The tcp connection from a client to the MQ server is called a channel.
60 The protocol layer on top of the TCP connection is called a connection
61 (I know, good, right?).  The connection between a queue and an exchange
62 is called a binding.
63
64 ---
65 Sun, 26 Jan 2014 17:24:28 +0000