From 93c7f6475d8f89f3e8e742fff63f90a9bcb1943d Mon Sep 17 00:00:00 2001 From: Simeon Simeonov Date: Tue, 31 May 2016 11:12:30 +0200 Subject: Initial commit --- reveal.js/rabbitmq.html | 290 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 290 insertions(+) create mode 100644 reveal.js/rabbitmq.html diff --git a/reveal.js/rabbitmq.html b/reveal.js/rabbitmq.html new file mode 100644 index 0000000..9b2621c --- /dev/null +++ b/reveal.js/rabbitmq.html @@ -0,0 +1,290 @@ + + + + + RabbitMQ - Intern opplæring + + + + + + + + + + + +
+ + +
+
+

RabbitMQ

+

Intern opplæring

+
+

+ Simeon Simeonov +

+
+ +
+
+

Agenda

+
+
    +
  • Installasjon
  • +
  • Administrasjon
  • +
  • Utvikling
  • +
+
+
+ +
+
+

Installasjon og oppsett

+
+
    +
  • Skaffe seg maskin og SSL sertifikat(er)

  • +
  • Bruke Ansible

  • +
  • Opprette administrator-bruker og slette guest-brukeren

  • +
  • Sette rettigheter og opprette entiteter

  • +
+
+
+

Ansible

+
+

Vi bruker repo UAIT/int-ansible-hosts

+

Etter å ha installert Ansible på lokalmaskina gjør vi følgende:

+
    +
  • git clone ssh://git@bitbucket.usit.uio.no:7999/uait/int-ansible-hosts.git

  • +
  • cd int-ansible-hosts

  • +
  • ansible-playbook --ask-become-pass -v --extra-vars '{"hosts": "mq-hostname"}' rabbitmq_playbook.yml

  • +
+

RabbitMQ skal nå være installert og tilgjengelig på https://mq-hostname

+
+ +
+

Administrator-bruker

+
+

Brukeren guest med passord guest vil eksistere etter at Ansible har kjørt

+

I tillegg til webgrensesnittet, kan en bruke rabbitmqctl

+
    +
  • rabbitmqctl list_users (Lister alle eksisterende RabbitMQ-brukere)

  • +
  • rabbitmqctl add_user rmq_admin <passord> (Legger til dedikert admin bruker rmq_admin)

  • +
  • rabbitmqctl set_user_tags rmq_admin administrator (Gir administrator rolle til rmq_admin)

  • +
  • rabbitmqctl delete_user guest (Sletter brukeren guest)

  • +
+
+ +
+

vhost

+
+

vhost fungerer som en beholder (container) for RabbitMQ/AMQP objekter. Nok igjen kan en velge mellom webgrensesnitt og rabbitmqctl

+
    +
  • rabbitmqctl list_vhosts (Lister alle eksisterende vhosts)

  • +
  • rabbitmqctl add_vhost /no/uio/integration (Oppretter vhost med navn /no/uio/integration)

  • +
+
+ +
+

Rettigheter

+

RabbitMQ implementerer 2 rettighetsnivåer:

+
    +
  • Per vhost
  • +
  • Per entitet
  • +
+

RabbitMQ definerer 3 typer operasjoner:

+
    +
  • configure - opprette / slette entiteter eller endre deres oppførsel

  • +
  • write - skrive melding til en entitet

  • +
  • read - lese melding fra entitet

  • +
+
+ +
+

Rettigheter og brukere

+

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_.*)$"

  • +
+
+ +
+

Køer

+

Køer defineres som durable ved hjelp av webgrensesnittet.

+

"Alle køer (både forhåndsdefinerte og de som defineres av konsument) må ha navn som starter med q_. Køen vil ha navn som uttryker mottakeren som bruker den."

+

F.eks. q_ad_microservice vil være et passende navn for køen som brukes av AD-microservice mottakeren.

+
+ +
+

Exchange

+

"Avsendere vil vanligvis sende meldinger til exchange ex_messages."

+

Det er flere typer exchange, men vi vil bruke kun topic exchange.

+
+
+ +
+
+

Utvikling

+
+
    +
  • Routing keys i topic exchange

  • +
  • Bindinger

  • +
  • Protokoller og porter

  • +
  • Exempler

  • +
+
+ +
+

Routing keys i topic exchange

+
+
+ +
+

Bindinger

+
+
+ +
+

Protokoller og porter

+
+
+ +
+

Exempler

+
+

Python:

+

"Well, we'll not risk another frontal assault. That rabbit's dynamite...."

+
+ +
+ +
+
+

Dokumentasjon og lenker

+
+

+ RabbitMQ: +

+ +
+
+

Dokumentasjon og lenker

+

+ UiO: +

+ +

+ Bøker: +

+
    +
  • +

    + + RabbitMQ in action - Alvaro Videla / Jason J.W. Williams - 2012 - Manning + +

  • +
  • +

    + + Mastering RabbitMQ - Ayanoglu / Aytas / Nahum - 2015 - PACKT Publishing + +

  • +
+
+
+
+ + + + + + + -- cgit v1.3