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