Bruk av AMQP for meldingsutveksling
AMQP (Advanced Message Queuing Protocol) versjon 1.0 skal benyttes for meldingsutvekslingen med Helsenorge. En generell beskrivelse av AMQP standarden finnes hos OASIS: http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-overview-v1.0-os.html.
Oppsett av AMQP-meldingen skal gjøres i henhold til spesifikasjon AMQP Profil
For å sende å motta meldinger kan kodebiblioteket Helsenorge Messaging benyttes.
NHN benytter Tjenestebuss for håndtering av AMQP køer, dokumentasjon av tjenesten er tilgjengelig her: Tjenestebuss
Krav og anbefalinger for klienter som benytter AMQP
Id | Krav | Begrunnelse |
---|---|---|
1 | En klient skal holde en persistent forbindelse og gjenbruke denne for sending og mottak | Opprettelse og avslutning er en dyr operasjon og medfører økt og unødvendig last på løsningen. |
2 | En klient skal håndtere frakopling av Tjenestebuss på en robust måte | Ved restart eller annen utilgjengelighet skal klienten automatisk gjenopprette tilkopling |
3 | En sender og mottaker skal settes opp med kun en factory per sender/mottak | Det er en begrensing på 1000 connections per kø. Helsenorge sin kø har svært mange avsendere, og hver sender skal ha kun en factory. Ved bruk av Helsenorge.Messaging settes dette ved configverdien |
4 | En kommunikasjonspart bør arve køer fra virksomheten | Det er mulig å sette opp at kommunikasjonsparter arver køer fra overliggende virksomhet. Dersom dette er mulig, bør det gjøres for å redusere antall køer og connections og gjøre overvåkning enklere. |
5 | Meldingstørrelse skal begrenses til maksimalt 30Mb | Brukstilfeller som sender store meldinger (over 1Mb) skal avtales spesielt for å vurdere egnethet. |
6 | En klient skal ha mulighet til å legge inn konfigurasjon på hvilke køer det skal lyttes på og hvilke kommunikasjonsparter som løsningen håndterer. | Klienten skal håndtere at ikke alle køer som klienten har tilgang til skal lyttes til. Det vil bli en god del feilede påloggingsforsøk dersom dette kun håndteres basert på hvilke køer klienten har tilgang til og klienten kan risikere låsing av brukeren med for mange feilede påloggingsforsøk. |