Slide 1

Slide 1 text

"LLB4USFBNTͱ4DBMBͰ࣮૷͢Δ ϚϧνϝσΟΞɾΦϯϥΠϯαʔόͷੈք DNEFWJP

Slide 2

Slide 2 text

࿩͢಺༰ w ࠓ೔΍Δ͜ͱɺ࢖͏ٕज़ w จࣈνϟοτͷ࣮૷ w ϏσΦνϟοτͷ࣮૷ w ΦϯϥΠϯήʔϜαʔόͷ࣮૷ w "LLBͱ4DBMB࢖ͬͯͲ͏͔ͩͬͨ w ·ͱΊ NJO NJO NJO NJO NJO NJO

Slide 3

Slide 3 text

ࣗݾ঺հ w ࿨ా༞հ w ೥݄೔ w ۀ຿4DBMB1MBZ w 5XJUUFS!XBEEZ@V w झຯ૲໺ٿ

Slide 4

Slide 4 text

ࠓ೔͸ Akka Streams Λ࢖ͬͯ ϦΞϧλΠϜαʔόΛ࡞ͬͯΈ·͢ʂ

Slide 5

Slide 5 text

"LLBΛ࢖͏ "LLB ฒྻॲཧͷͨΊͷϥΠϒϥϦ +BWB4DBMB ɻ
 $IBU8PSLαʔόͷνϟοτϝοηʔδ3FBE8SJUF"1* Ͱ׆༻͞Ε͍ͯΔɻ "LLB4USFBNT ແݶʹൃੜ͢ΔσʔλΛѻ͏ͨΊͷϥΠϒϥϦɻϓϩμΫτ ͩͱओʹϩάͷৼΓ෼͚΍όονॲཧͰར༻͞Ε͍ͯΔɻ

Slide 6

Slide 6 text

ͳͥ"LLB ٕज़తͳ໘ന͞ ۀ຿Ͱ"LLB੡ͷϫʔΧʔΛ࡞Δػձ͕͋ͬͨ w "LLB"DUPS୯ҐͷॲཧઃܭͰߴϝϯςφϯεੑ w 4DBMBͷύλʔϯϚονϯάͱͷߴ਌࿨ੑ w "LLBͷϙςϯγϟϧ͸·ͩ·ͩ͋Δ Akka ͜ͱ͸͡Ί - Developers IO http://dev.classmethod.jp/server-side/akka-worker/

Slide 7

Slide 7 text

ͳͥ"LLB ϦΞϧλΠϜlᅂ޷z ͍Ζ͍ΖͳσόΠε͕Πϯλʔωοτʹͭͳ͕Δ࣌୅ தܧ໾͕ཁΔɻ8FC"1*͸ࠓޙ΋ܗͦ͜ม͑ΕͲඞཁͱ͞ΕΔ͸ ͣɻαʔόαΠυΞϓϦͷ࢓ࣄ͸૿͑ଓ͚Δɻ 10454UPSF(&5͔Β4USFBN΁ ͋ΔΫϥΠΞϯτ͕ɺίϯςϯπΛऔಘ͠Α͏ͱࢥͬͨΒɺʮ୭͔ ͕ߋ৽ͯ͠อଘͨ͠σʔλΛͱΓʹ͍͘ʯͱ͍͏खॱʹͳΔɻͦ͏ Ͱ͸ͳ͘ɺʮ୭͕ݟΔ͔͸Θ͔Βͳ͍͚ͲͱΓ͋͑ͣྲྀ͢ɻྲྀΕͯ ͖ͨσʔλ͸ղऍͰ͖Δਓ͕͔͠Δ΂͖खஈͰίϯςπͱͯ͠දࣔ ͢Δʯํ͕ࣜओྲྀʹͳ͍ͬͯ͘ʜ͔΋͠Εͳ͍ɻ

Slide 8

Slide 8 text

ͳͥ"LLB ೔ຊޠͷࢿྉ͕গͳ͍ ͱ͖ͬͭʹ͍͘ http://doc.akka.io/docs/akka/current/scala/guide/introduction.html http://freecontent.manning.com/akka-in-action-why-use-clustering/

Slide 9

Slide 9 text

φΠεͳϥΠϒϥϦͳͷͰʜ গ͠Ͱ΋਌͠ΈΛ࣋ͬͯཉ͍͠

Slide 10

Slide 10 text

΍Δ͜ͱɺ΍Βͳ͍͜ͱ ΍Δ͜ͱ "LLB4USFBNTΛ࢖ͬͯྫ͑͹ͲΜͳ΋ͷ͕࡞ΕΔ͔ʁ
 ͦͷͱ͖ͲΜͳײ͡ͷιʔείʔυʹͳΔͷ͔ʁ
 ࣮ߦ͢ΔͱͲ͏ͳΔ͔ʁ ΍Βͳ͍͜ͱ "LLBΛ࢖͏͜ͱʹΑΔ଱ো֐ੑɺεέʔϥϏϦςΟɺ͓Α ͼ࣮૷ͨ͠ΞϓϦέʔγϣϯͷύϑΥʔϚϯεݕূ͸ɺ࣮ࢪ ͠·ͤΜɻ

Slide 11

Slide 11 text

ٕज़બ୒ͷީิΛ૿΍͍ͯͨͩ͘͜͠ͱ͕ΰʔϧ αʔόʔαΠυΞϓϦέʔγϣϯͷٕज़બ୒͸ແݶ αʔόʔαΠυΞϓϦέʔγϣϯͳͷʹαʔόʔϨε͕બ୒ࢶʹڍ ͕Δ࣌୅ʢଞηογϣϯࢀরʣɻ ΠϯϑϥϨΠϠͷίʔσΟϯάɺϞχλϦϯάɺώʔϦϯάखஈ͕ ॆ࣮͠ɺ΋ͱ΋ͱϛυϧ΢ΣΞ͕୲͍ͬͯͨ໾ׂ෼Խͳ͍͠αʔϏ εԽɻ ͱ͸͍͑ɺ"LLBؚΊͯ͋͘·ͰखஈɻαʔόʔαΠυΞϓϦέʔ γϣϯͷ࣮ݱํ๏ͱͯ͠ʮ͜͏͍͏ͷ΋͋ΔΜͩʯΛ࣋ͪؼͬͯཉ ͍͠ͱࢥ͍ͬͯ·͢ɻ

Slide 12

Slide 12 text

"LLB4USFBNTͰαʔόʔαΠυΞϓϦέʔγϣϯ จࣈνϟοτͷ࣮૷

Slide 13

Slide 13 text

ਐΊํ ͲΜͳ΋ͷΛ࡞͔ͬͨ ػೳΛ੔ཧ͢Δ ࢖ٕͬͨज़ʹ͍ͭͯઆ໌͢Δ ιʔείʔυΛಡΉ

Slide 14

Slide 14 text

ͲΜͳ΋ͷΛ࡞͔ͬͨ "OHVMBS3Y+48FC4PDLFUͰνϟοτΞϓϦΛ࡞Δ IUUQEFWDMBTTNFUIPEKQDMJFOUTJEFBOHVMBSSYKTXFCTPDLFUDIBU

Slide 15

Slide 15 text

ػೳΛ੔ཧ͢Δ αʔό1VCMJTI4VCTDSJCFνϟωϧ ΫϥΠΞϯτϑΥʔϜೖྗͱ1VCMJTI ΫϥΠΞϯτ4VCTDSJCFͱը໘ඳը

Slide 16

Slide 16 text

࢖ٕͬͨज़ʹ͍ͭͯઆ໌͢Δ "OHVMBS ը໘ͷඳըͱ"LLB4USFBNT΍ΓͱΓͰར༻ɻ 3Y+4 8FC4PDLFUͰ઀ଓͨ͠"LLB4USFBNTͷσʔλΛϦΞΫςΟϒʹॲཧ͢Δɻ "LLB4USFBNT νϟοτϝοηʔδͷू໿ͱϒϩʔυΩϟετͷͨΊʹར༻ɻ
 1VCMJTI4VCTDSJCFνϟωϧɻ 8FC4PDLFU ௨৴ϓϩτίϧͰ)551ΑΓ΋ϦΞϧλΠϜੑ͕ߴ͍ͪ͜ΒΛ࠾༻ɻ

Slide 17

Slide 17 text

"OHVMBS 8FCΞϓϦΛߏங͢ΔͨΊͷϑϨʔϜϫʔΫ 5FNQMBUF )5.-จॻΛ֦ுͯ͠ɺ"OHVMBSಛ༗ͷهड़Λߦ ͏͜ͱʹΑΓ%0.ߏ଄ͷ܁Γฦ͠΍ɺΫϦοΫΠ ϕϯτʹ൓Ԡͯ͠σʔλΛߋ৽͢Δ͜ͱ͕Մೳɻ σʔλͷରͱͳΔ$PNQPOFOU͕࣮ߦ͢Δɻ $PNQPOFOU 5FNQMBUFͱηοτɻϏϡʔͰར༻͢ΔσʔλΛ ༻ҙͨ͠ΓɺٯʹϏϡʔͰൃੜͨ͠ΠϕϯτΛݕ ஌ͯ͠ޙड़ͷ4FSWJDF΁ॲཧΛҕৡ͢Δɻ 4FSWJDF "OHVMBSͰ͸%*ͷ࢓૊ΈΛಋೖ͢Δ͜ͱʹΑΓɺ ͋ΒΏΔίϯϙʔωϯτ͔ΒOFX͢Δ͜ͱͳ͘σʔ λ$63%ͳͲͷϩδοΫΛݺͼग़͢ɻ֎෦ͱͷ௨ ৴ͳͲ΋͜͜Ͱߦ͏ɻ

Slide 18

Slide 18 text

"LLB4USFBNT 4PVSDFσʔλൃੜݯ 4JOLσʔλग़ྗઌ 'MPXσʔλॲཧ ෦඼Λ૊Έ߹ΘͤͯάϥϑΛ࡞ Δɻ࡞ͬͨάϥϑΛ࣮ߦ͢Δɻ

Slide 19

Slide 19 text

"LLB4USFBNT 4PVSDFσʔλൃੜݯ 4JOLσʔλग़ྗઌ 'MPXσʔλॲཧ ෦඼Λ૊Έ߹Θͤͯɺ
 νϟοτγεςϜͷʮϝοηʔδόεʯΛ
 ࡞Δ͜ͱ͕Ͱ͖Ε͹0,

Slide 20

Slide 20 text

ΈΜͳͰ ιʔείʔυϦʔσΟϯάλΠϜ ηογϣϯͰ࿩ͨ͠ϙΠϯτ w 8FC4PDLFUͷೖग़ྗʹ'MPX<+T7BMVF +T7BMVF>Λͭͳ͛ Δ͜ͱͰ؆୯ʹαʔόΛߏஙͰ͖Δɻ w #SPBEDBTU)VC .FSHF)VCΛ࢖͏͜ͱͰಈతͳάϥϑΛ ఆٛ͢Δ͜ͱ͕Մೳɻ͜ΕΛ1VCMJTI4VCTDSJCFνϟω ϧʹ͢Δɻ

Slide 21

Slide 21 text

"LLB4USFBNTͰαʔόʔαΠυΞϓϦέʔγϣϯ ϏσΦνϟοτͷ࣮૷

Slide 22

Slide 22 text

࿩͢಺༰ ͲΜͳ΋ͷΛ࡞͔ͬͨ ϏσΦνϟοτͳΒͰ͸ͷཁૉ ΫϥΠΞϯταΠυͷιʔείʔυΛಡΉ

Slide 23

Slide 23 text

ͲΜͳ΋ͷΛ࡞͔ͬͨ "OHVMBSͱ"LLB4USFBNTͰଟରଟͷϏσΦνϟοτ
 IUUQEFWDMBTTNFUIPEKQDMJFOUTJEFWJEFPDIBUNFEJBTPVSDFFYUFOTJPOT

Slide 24

Slide 24 text

ϏσΦνϟοτͳΒͰ͸ͷཁૉ )5.-.FEJB4PVSDF&YUFOTJPOTར༻ ө૾ͷऔಘͱඳըΛߦ͏"1*ɻ ϝοηʔδ͕จࣈྻͰ͸ͳ͘όΠφϦ "LLB4USFBNTͷجຊతͳߏ੒͸มΘΒͳ͍ɻ ϝϯόʔදͷ؅ཧ͕৽ͨʹඞཁ ࢀՃϢʔβݸผͰϝοηʔδόεΛ༻ҙ͢Δɻ

Slide 25

Slide 25 text

)5.-.FEJB4PVSDF&YUFOTJPOT όΠφϦσʔλΛϒϥ΢β"1*ܦ༝Ͱૢ࡞Ͱ͖Δ

Slide 26

Slide 26 text

όΠφϦΛѻ͏ϝϯόʔදͷ؅ཧ͕ඞཁʹͳΔ

Slide 27

Slide 27 text

ओʹΫϥΠΞϯταΠυ ιʔείʔυϦʔσΟϯάλΠϜ ηογϣϯͰ࿩ͨ͠ϙΠϯτ w ϝϯόʔ͕૿͑Δͱɺ"OHVMBSͷίϯϙʔωϯτ͕উखʹWJEFP λάΛ࡞Δɻ w WJEFPλάͷσʔλιʔεͱͯ͠$PNQPOFOU͕ө૾ͷόΠφ ϦσʔλΛྲྀ͢ɻ w 8FC35$ͱ͸ผͷܗͰଟରଟͷϏσΦνϟοτΛ࡞Δ͜ͱ͕Ͱ ͖Δɻ

Slide 28

Slide 28 text

"LLB4USFBNTͰαʔόʔαΠυΞϓϦέʔγϣϯ ήʔϜαʔόͷ࣮૷

Slide 29

Slide 29 text

࿩͢಺༰ ͭͬͨ͘΋ͷ࣮ԋ ήʔϜαʔόͳΒͰ͸ͷཁૉ ιʔείʔυϦʔσΟϯάλΠϜ

Slide 30

Slide 30 text

ͭͬͨ͘΋ͷΦϯϥΠϯϚϧόπήʔϜαʔό

Slide 31

Slide 31 text

ήʔϜαʔόͳΒͰ͸ͷཁૉ ήʔϜͷঢ়ଶΛӬଓԽ 3FEJTʹ+40/ͱͯ͠อଘ͢Δɻ lίϚϯυzͰήʔϜঢ়ଶΛߋ৽ ͨͩσʔλΛྲྀ͚ͩ͢Ͱͳ͘ɺϩδοΫΛద༻͢Δɻ ӬଓԽͨ͠ঢ়ଶΛҰఆִؒͰૹग़ ྲྀΕͯ͘ΔσʔλΛͦͷ··ར༻͢Δ͜Ε·Ͱͱ͸ҟͳΔɻ

Slide 32

Slide 32 text

ήʔϜαʔόུ֓ਤ ϓϨΠϠʔ͸$PNNBOEΛૹ৴͢Δ ήʔϜαʔό͸ήʔϜϩδοΫΛద༻͠3FEJTΛߋ৽͢Δ ήʔϜαʔό͸ҰఆִؒͰ(BNF4UBUVTΛૹग़͢Δ

Slide 33

Slide 33 text

"LLB4USFBNTͰ͜Μͳ͜ͱ΋Ͱ͖Δ ιʔείʔυϦʔσΟϯάλΠϜ ηογϣϯͰ࿩ͨ͠ϙΠϯτ w 4USFBNࣗ਎͕ೳಈతʹϝοηʔδΛൃੜͤ͞Δ 3FEJTͷঢ় ଶΛಡΈࠐΊͱ͍͏໋ྩ ɻ w ϝοηʔδΛड͚औͬͨΒ3FEJT͔Βঢ়ଶΛಡΈࠐΜͰྲྀ͢ɻ w 4USFBN಺ͷ'MPXͰύλʔϯϚονΛ༻͍Δ͜ͱͰɺϢʔ βʔ͔ΒͷίϚϯυͳͷ͔ɺೳಈతͳ໋ྩͳͷ͔൑ผ͕Մೳɻ

Slide 34

Slide 34 text

ٞ࿦ɿϦΞϧλΠϜαʔόʹ͓͍ͯ"LLB͸Ͳ͏͔ 4USFBNTͰ1VCMJTI4VCTDSJCFߏஙՄೳ .FSHF)VCͱ#SPBEDBTU)VCͰ8FC4PDLFUͷೖग़ྗΛ ಈతʹͭͳ͙͜ͱ͕Ͱ͖ΔɻଟରଟͷϦΞϧλΠϜαʔόߏ ஙύλʔϯͷͻͱͭɻ ྲྀྔ΍σʔλൃੜස౓ͷௐ੔͕Մೳ ཁ݅ʹԠͯ͡ෛՙͷ੍ޚ͕Մೳɻ͜Ε͸"LLB4USFBNTඪ ४ػೳͱͯ͠උΘ͍ͬͯΔɻ

Slide 35

Slide 35 text

ٞ࿦ɿϦΞϧλΠϜαʔόʹ͓͍ͯ4DBMB͸Ͳ͏͔ ྲྀΕΔϝοηʔδʹܕ৘ใΛ࣋ͨͤΔ͜ͱ͕Ͱ͖Δ *OQVU͕ԿͰɺ0VUQVU͕Կͷ෦඼ͳͷ͔໌Β͔ɻܕ৘ใ͕ ෆਖ਼ͳ෦඼Λ૊Έ߹ΘͤΑ͏ͱ͢ΔͱίϯύΠϧΤϥʔʹͳ ΔɻϥϯλΠϜΤϥʔͰ͸ͳ͍ɻ ύλʔϯϚονʹΑΔೖग़ྗͷ੍ޚ σʔλͷγϦΞϥΠζɺσγϦΞϥΠζͰ׆༂ɻෆਖ਼ͳσʔ λͷ৵ೖΛ๷͙ͱͱ΋ʹɺग़ྗ͢ΔσʔλͷܕΛอূ͢Δɻ

Slide 36

Slide 36 text

·ͱΊ "LLB4USFBNT ࠓճͷओ໾ɻ࣮ݱखஈ͕๛෋ͳαʔόʔαΠυΞϓϦʹ͓͍ͯϦΞϧλΠϜੑΛٻΊΔͱ ͖ʹͥͻߟྀʹೖΕ͍ͨͰ͢ɻ "OHVMBS ϫϯετοϓͰσʔλतड͔Βը໘ඳը·ͰΠέΔφΠεͳ8FCΞϓϦέʔγϣϯϑϨʔ ϜϫʔΫɻ4FSWJDFͰ8FC4PDLFUͷॲཧΛӅṭ͔ͯͭ͠$PNQPOFOUʹ%*Ͱ͖Δ఺͕ ϞδϡʔϧੑߴͰૉ੖Β͍͠ͱࢥ͍·ͨ͠ɻ )5.-.FEJB4PVSDF&YUFOTJPOT 'MBTI΍4JMWFSMJHIUͱ͍ͬͨϦονͳ֦ுΛ࢖͏͜ͱͳ͘ϝσΟΞΛϒϥ΢βͰѻ͏ͨΊ ͷ"1*܈ɻࠓճ͔ͳΓॿ͔Γ·ͨ͠ɻ4BGBSJͰ΋࢖͑ΔΑ͏ʹͳΕ͹εϚʔτϑΥϯΛ௨ ͯ͠Ұؾʹීٴ͢ΔͷͰ͸ɻ

Slide 37

Slide 37 text

ηογϣϯͰར༻ͨ͠ιʔείʔυ͸ͪ͜Β αʔόʔαΠυ"LLB4USFBNT EFWFMPQFSTJPNFEJBTFSWFSXFCTPDLFUBLLBTUSFBN
 IUUQTHJUIVCDPNDNXBEBZVTVLFEFWFMPQFSTJP USFFNBTUFSNFEJBTFSWFSXFCTPDLFUBLLBTUSFBN ΫϥΠΞϯταΠυ"OHVMBS EFWFMPQFSTJPBOHVMBSNFEJBTUSFBNBQQ
 IUUQTHJUIVCDPNDNXBEBZVTVLFEFWFMPQFSTJP USFFNBTUFSBOHVMBSNFEJBTUSFBNBQQ

Slide 38

Slide 38 text

ࢀߟ w "LLBIUUQBLLBJP w "OHVMBSIUUQTBOHVMBSJP w .FEJB4PVSDF&YUFOTJPOTäIUUQTXXXXPSH53NFEJBTPVSDF w .FEJB4PVSDFIUUQTEFWFMPQFSNP[JMMBPSHKBEPDT8FC"1*.FEJB4PVSDF w 8FC4PDLFUTIUUQTXXXQMBZGSBNFXPSLDPNEPDVNFOUBUJPOY4DBMB8FC4PDLFUTXFCTPDLFUT