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