Akka frukostseminarium
-
Upload
johan-andren -
Category
Technology
-
view
272 -
download
0
description
Transcript of Akka frukostseminarium
Moores lag
1971 idag19902300
2,6 miljarder
1 miljon
No Problems!
Oh No, Problems!
• Race conditions
• Korrupt data
• Deadlocks
• Thread contention
• Livelocks
• Priority Inversion
Multitrådning är SVÅRT• Att skriva
• Att testa
• Att debugga
• Att resonera kring
Vi behöver en bättre modell!
A
B C
D
EF
ACTORShändelsestyrdasystem med
Inkorg
Beteende
Tillstånd
Enda sättet att interagera
• Entrådsmodell - lätt att förstå
• Inget delat tillstånd
• Lättviktig
• Lös koppling
• Lätt att testa
Actor A Actor B
Actor A Actor B
Envägskommunikation
Actor A Actor B
Reagera, inte vänta
Actor AActor B1
Lastbalansera
Actor B2
router
Actor A Actor F (filter)
Pipe/Filter
Actor B
Actor A Actor B (chef)
ParallelliseraActor C1
Actor C2
Actor C2
• Inget jobb, ingen tråd!
• Async - aldrig vänta aktivt på svar
• Lös koppling
A
B C
D
EF
JVM
A
B C
D
EF
JVM 1 JVM 2
• Två actors på en kärna, en i taget
• Två actors på en kärna, samtidigt
• Två actors på varsin kärna
• Två actors på varsin server
Ingen skillnad på
Felhanteringi Actorsystem
• Läckage mellan skikt
• Upptäcka samtidiga fel
• Hur veta hur ett fel skall hanteras?
Traditionell modell
Actor X
(förälder)
Actor A
Actor Z
Felhantering med Actors
Actor X
(förälder)
Actor A
Actor Z
Felhantering med Actors
Actor X
Actor A
Actor Z
Felhantering med Actors
• Vattentäta skott
• Explicit vad som kommuniceras tillbaka
• Separation av felhantering och affärslogik
• Möjligt att hantera samtidiga fel
”Supervision”
• STM
• Remoting
• Klustring utan SPoF
• Integration med MQs
• Eventbus
Och mer!
http://akka.io
Johan Andrén [email protected]
• Enkel men extremt kraftfull modell
• Lättviktigt och snabbt
• Lös koppling
• Självläkande system
Recap