Utviklerforum 14.12.2017
Kai Vaade (KIA), Simeon Simeonov (INT)
Vi bruker RabbitMQ med AMQP 0.9.1 til å utveksle / behandle meldinger (JSON, SCIM)
Bruk av message-broker startet i 2015. I produksjon siden høsten 2017.
Driftes av KIA.
Cerebrum har brukt MQ et års tid på egen server satt opp av Seksjon for integrasjon og elektroniske identiteter (USITINT).
Nå er driften av tjenesten flyttet fra prosjektet og inn i linja, Gruppe for drift av katalog-, integrasjon- og autentiseringstjenester (KIA).
Vi har softlaunchet meldingskø-tjenesten i høst. Tjenesten er ikke "offisielt" lansert, kjører kun våre egne ting (Cerebrum/SAP) foreløpig.
Antakelig gjør vi tjenesten kjent samtidig som et annet delprosjekt (API Manager) i UiO INTARK lanseres i nær fremtid.
Foreløpig så har vi ikke så veldig mye erfaring med tjenesten i linja.
Vi vet heller ikke så mye om behovet; dvs hvor mange som kommer til å bruke tjenesten.
Hvordan kontakte oss:
https://www.usit.uio.no/om/organisasjon/iti/td/kia/dokumentasjon/meldingsko/
Tilgang til grensesnittet: https://mq.uio.no
Roller:
Entiteter:
RabbitMQ implementerer 2 rettighetsnivåer: per vhost og per entitet
RabbitMQ (AMQP) definerer 3 typer operasjoner:
configure - opprette / slette entiteter eller endre deres oppførsel
write - skrive melding til en entitet
read - lese melding fra entitet
RabbitMQ bruker regular expressions til å definere rettigheter
rabbitmqctl add_user cerebrum <passord>
rabbitmqctl add_user uio_ad_microservice <passord>
rabbitmqctl set_permissions -p /no/uio/integration cerebrum "^$" "^ex_.*" "^$"
rabbitmqctl set_permissions -p /no/uio/integration uio_ad_microservice "^q_ad_ms_.*" "^q_ad_ms_.*" "^(ex_messages|q_ad_ms_.*)$"
Routing key settes av sender som en del av meldingen og blir inspisert av brokeren dersom meldingen sendes til en topic exchange.
Strukturen til en topic / message routing key er:
<kilde>.<type>.<objekt>.<hendelse>
F.eks.:
cerebrum.event.person.delete
RabbitMQ:
http://www.rabbitmq.com - RabbitMQ sin offisielle side
http://www.rabbitmq.com/configure.html - Generell konfigurasjon av RabbitMQ
http://www.rabbitmq.com/management.html - Bruk av rabbitmq_management plugin i RabbitMQ
http://www.rabbitmq.com/access-control.html - Tilgangskontroll i RabbitMQ
http://www.rabbitmq.com/man/rabbitmqctl.1.man.html - rabbitmqctl manual side
http://www.rabbitmq.com/tutorials/amqp-concepts.html - Generelt om AMQP og forskjellige exchanges
UiO:
Bøker:
RabbitMQ in action - Alvaro Videla / Jason J.W. Williams - 2012 - Manning
Mastering RabbitMQ - Ayanoglu / Aytas / Nahum - 2015 - PACKT Publishing