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