Reaktormønster - Reactor pattern

Reaktoren mønster er en begivenhed håndtering mønster til håndtering tjenesteanmodninger leveres samtidigt til en tjeneste handler med én eller flere input. Servicehandleren demultiplekserer derefter de indgående anmodninger og sender dem synkront til de tilknyttede anmodningshåndterere.

Struktur

Ressourcer
Enhver ressource, der kan levere input til eller forbruge output fra systemet.
Synkron begivenhedsdemultiplexer
Bruger en begivenhedssløjfe til at blokere for alle ressourcer. Demultiplexeren sender ressourcen til afsenderen, når det er muligt at starte en synkron operation på en ressource uden at blokere ( Eksempel: et synkront opkald til read() vil blokere, hvis der ikke er data at læse. Demultiplexeren bruger select() på ressourcen, som spærrer indtil ressource er tilgængelig til læsning. I dette tilfælde read() blokeres et synkront opkald til ikke, og demultiplexeren kan sende ressourcen til afsenderen.)
Afsender
Håndterer registrering og afregistrering af anmodningshåndterere. Afsender ressourcer fra demultiplexeren til den tilknyttede anmodningshåndterer.
Anmodningsbehandler
En applikationsdefineret anmodningshåndterer og dens tilknyttede ressource.

Ejendomme

Alle reaktorsystemer har en-gevind pr. Definition, men kan eksistere i et multitrådet miljø.

Fordele

Reaktormønsteret adskiller applikationsspecifik kode fuldstændigt fra implementeringen af ​​reaktoren, hvilket betyder, at applikationskomponenter kan opdeles i modulære, genanvendelige dele.

Begrænsninger

Reaktormønsteret kan være sværere at debugge end et proceduremønster på grund af den omvendte strøm af kontrol. Ved kun at ringe til anmodningshåndterere synkront begrænser reaktormønsteret maksimal samtidighed, især på symmetrisk multiprocesseringshardware . Reaktormønsterets skalerbarhed er begrænset ikke kun ved at ringe til anmodningshåndterere synkront, men også af demultiplexeren.

Se også

Referencer

eksterne links