Innhold
1 Generelt
Dokumentet beskriver et generelt RabbitMQ oppsett for Office365 integrasjon mot UiA.
Cerebrum vil sende data til RabbitMQ ved hjelp av AMQP klient. RabbitMQ vil da plassere dataen i forhåndsdefinert(e) kø(er). UiA vil kunne "abonnere" på bestemt(e) kø(er) ved hjelp av STOMP klient.
Cerebrum changelog events (producer) → [cerebrum_user / AMQP] → [RabbitMQ] ← [uia_user / STOMP] ← melding til UiAs (consumer)
2 Forutsetninger
Det forutsettes at installasjon og oppsett av virtuell instans med RabbitMQ er fullført.
Alle kommandoer kjøres med administrator (root) rettigheter.
3 Oppsett
3.1 vhost
UiA integrasjonen vil kunne benytte seg av egne vhosts for test, staging, prod... etc. For bedre oversikt kan de ha felles namespace (f.eks. /cerebrum/uia).
vhost for testing kan settes opp som følge:
rabbitmqctl add_vhost /cerebrum/uia
3.2 Brukere
Vi trenger to brukere per vhost
- AMQP bruker for Cerebrum (f.eks. cerebrum).
- STOMP bruker for UiA (f.eks. uia).
rabbitmqctl add_user cerebrum <passord> rabbitmqctl add_user uia <passord>
3.3 Rettigheter
Administrator brukeren får change/write/read rettigheter til alle objekter i en vhost.
Cerebrum brukeren trenger å kunne skrive til køer og exchanges.
UiA brukeren trenger å kunne lese fra UiA sin(e) kø(er).
rabbitmqctl set_permissions -p /cerebrum/uia rmq_admin ".*" ".*" ".*" rabbitmqctl set_permissions -p /cerebrum/uia cerebrum "^$" ".*" "^$" rabbitmqctl set_permissions -p /cerebrum/uia uia "^$" "^$" "^q_uia_.*"
3.4 Køer
Køer (queues) skal defineres på forhånd som durable ved hjelp av webgrensesnittet til RabbitMQ.
For Office365 integrasjon vil vi trenge én kø (??? TODO ???) for hver vhost.
Kønavn bør starte med q_. Eks. q_uia_office365.
3.5 Exchanges
Exchanges skal defineres på forhånd som durable ved hjelp av webgrensesnittet til RabbitMQ.
For Office365 integrasjon vil vi bruke topic exchanges.
Exchangenavn bør starte med ex_. Eks. ex_api_events.
3.6 Bindinger
Bindinger (bindings) skal defineres på forhånd ved hjelp av webgrensesnittet til RabbitMQ.
Eksisterende bindinger kan vises ved hjelp av:
rabbitmqctl list_bindings -p /cerebrum/uia ex_api_events q_uia_office365