...
- Les applications communiquent entre elles via RabbitMQ - Gestion de RabbitMQ
- Les applications peuvent requeter les référentiels directement via une API HTTP. Dans ce cas, la dépendance au service concernée doit être explicitement signalée
Structure des messages
Exemple de message :
Bloc de code | ||||
---|---|---|---|---|
| ||||
{
"event_uuid":"88d818a1-c77c-44e6-ad0c-8aa893468e94",
"event_name":"request.gapps.account.create",
"event_creation_time":"2016-05-29T15:03:50+00:00",
"event_sender_id":"gram",
"data":{
"id":"12453"
},
"errors_count":1,
"errors":[
{
"error_type":"softerror",
"error_uuid":"e157e1a0-2663-11e6-b67b-9e71128cae77",
"error_sender":"gappsd",
"error_message":"Google API Unavailable",
"timestamp":"2016-05-29T15:03:50Z",
"error_debug":{
"id":"12453"
}
}
]
} |
Catalogue des services
Gapps
I/O | Routing key | Action/Déclencheur | Format du JSON | |||||||
---|---|---|---|---|---|---|---|---|---|---|
Requête | request.gapps.account.create | Crée un nouveau compte Google Apps à partir des informations contenues dans le GrAM et l'application Zenimel |
| |||||||
Requête | request.gapps.account.update | Met à jour un compte Google Apps à partir des informations contenues dans le GrAM et l'application Zenimel |
| |||||||
Requête | request.gapps.account.delete | Supprime un compte Google Apps à partir des informations contenues dans le GrAM et l'application Zenimel |
| |||||||
Requête | request.gapps.account.suspend | Suspend un compte Google Apps à partir des informations contenues dans le GrAM et l'application Zenimel |
| |||||||
Notification | notify.gapps.account.updated | Un compte Google Apps a été modifié par Gappsd |
|
...
Voir Producteur de messages et Recepteur de messages
Topologie
Voir Topologie
Structure des messages
Voir Messages
Gestion des erreurs
Dans chaque applications, des erreurs peuvent empecher le message d'être traiter. Chaque message contient l'historique des erreurs qui lui sont associées.
Si un service consommateur souhaite ajouter une erreur il doit obligatoirement renvoyer ce message vers l'exchange RabbitMQ principal. Si le traitement du message ne necessitait pas que celui-ci soit envoyé à un autre service consomateur, il peut être envoyé directement au service d'audit via la routing key spéciale : "agoram.log"
Debugger les messages
Visualiser les messages transmis
Nous avons créer un outil maison pour visualiser les messages sur https://gorg-soa-supervision.herokuapp.com/. Le code source est ici : https://github.com/gadzorg/gorg_soa_supervision
Il peut également être utilisé en ligne de commande pour trouver plus efficacement des messages précis.
Envoyer un message manuellement
https://gorg-soa-supervision.herokuapp.com/ peut également être utilisé pour envoyer des messages manuellement