Oppsett av RabbitMQ for Office365 integrasjon mot UiA

Informasjon om oppsett av RabbitMQ for Office365 integrasjon mot UiA

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

  1. AMQP bruker for Cerebrum (f.eks. cerebrum).
  2. 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
Av sgs
Publisert 20. aug. 2015 08:48