Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
͋ͳͨͬͯͲΜͳํ(ܕ)ʁ 2018/05/25 kamakura.go#4
Slide 2
Slide 2 text
ࣗݾհ • ਧྒྷհ a.k.a ˏKonboi • ໘ന๏ਓΧϠοΫ • SGࣄۀ෦ • αʔόʔαΠυΤϯδχΞ/ ΤϯδχΞϦϯάϚωʔδϟʔ • Go/Perl/AWS
Slide 3
Slide 3 text
ࠓͷ͓
Slide 4
Slide 4 text
͋ͳͨͬͯͲΜͳํ(ܕ)ʁ
Slide 5
Slide 5 text
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
Slide 6
Slide 6 text
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
Slide 7
Slide 7 text
δϣϒΩϡʔ • a.k.a ϝοηʔδΩϡʔ/λεΫΩϡʔ • Perl • Gearman • Q4M • Rails • ActiveJob • Sidekiq • Shoryuken
Slide 8
Slide 8 text
δϣϒΩϡʔ • ඇಉظʹॲཧΛߦ͍͍ͨ • ϩδοΫͷॲཧΛ͚͍ͨ • ex) • ϢʔβʔొޙϝʔϧΛૹΔ • ΫΤετΫϦΞ࣌ͷΫΤετΫϦΞνϟϨϯδͷୡ • ϑϨϯυΛΫΤετʹ࿈Εͯߦͬͨ࣌ʹ ϑϨϯυϙΠϯτ༩
Slide 9
Slide 9 text
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
Amazon SQS • Simple Queue Service ͷུ • ϚωʔδυͷΩϡʔΠϯάαʔϏε • ඪ४ΩϡʔͱFIFO(First In First Out)Ωϡʔͷ2ͭ • ͨͩ͠ɺFIFO౦ژϦʔδϣϯະରԠ
Slide 12
Slide 12 text
Amazon SQS • String,Number,BinaryͷσʔλΛ ϝοηʔδຊจʹ֨ೲՄೳ • AttributeͱݺΕΔϑΟʔϧυʹ ຊจͱผʹใ͕֨ೲՄೳ • Ұఆ࣌ؒܦͭͱ ࠶ϝοηʔδ͕औಘͰ͖Δ • ϝοηʔδࣗͰআ͢Δඞཁ͕༗Δ
Slide 13
Slide 13 text
ͦͦͳΜͰ Amazon SQSΛ͏ͷ͔ʁ
Slide 14
Slide 14 text
Amazon SQSΛ͏ཧ༝ • ϑϧϚωʔδυ • ཧίετμϯ • ଞͷϓϩδΣΫτͰ࠾༻ࡁΈ • ͨͩ͠ • SQSಠࣗͷΫηΛߟྀ͢Δඞཁ͕͋Δ • ࠓճ͜ͷ෦͞ͳ͍ͷͰڵຯ͋Δਓ ࠙ձͰ
Slide 15
Slide 15 text
GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠
Slide 16
Slide 16 text
GoͷϓϩδΣΫτ • ొਓ • Job • ඇಉظʹ࣮ߦ͍ͨ͠ॲཧ • Queue • JobΛग़͠ೖΕ͢ΔͷΠϝʔδ • JobQueue • JobΛQueue͔ΒऔΓग़࣮ͯ͠ߦ͢Δ
Slide 17
Slide 17 text
GoͷϓϩδΣΫτ • ίʔυͩͱ͜Μͳײ͡
Slide 18
Slide 18 text
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC
Slide 19
Slide 19 text
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC
Slide 20
Slide 20 text
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC
Slide 21
Slide 21 text
GoͷϓϩδΣΫτ +PC2VFVF 2VFVF +PC 3VO
Slide 22
Slide 22 text
ͨͱ͑Queue͕ channelͷ߹
Slide 23
Slide 23 text
Queue͕channelͷ߹ • channelΛ༻͍ͨQueueͷίʔυ
Slide 24
Slide 24 text
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF +PC DIBOOFM
Slide 25
Slide 25 text
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF +PC DIBOOFM
Slide 26
Slide 26 text
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF +PC DIBOOFM
Slide 27
Slide 27 text
Queue͕channelͷ߹ • ਤ +PC2VFVF 2VFVF DIBOOFM +PC 3VO
Slide 28
Slide 28 text
ͨͱ͑Queue͕ Amazon SQSͷ߹
Slide 29
Slide 29 text
ͨͱ͑Queue͕Amazon SQSͷ߹ • amazon sqsΛ༻͍ͨQueueͷίʔυ
Slide 30
Slide 30 text
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ 2VFVF +PC
Slide 31
Slide 31 text
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ +PC 2VFVF
Slide 32
Slide 32 text
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ 424.FTTBHFͷ#PEZʹ +PCͷใΛ+40/ʹͯ͠ૹΔ 2VFVF
Slide 33
Slide 33 text
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ 424.FTTBHFͷ#PEZͷ +40/Λ+PCʹ6ONBSTIBM 2VFVF
Slide 34
Slide 34 text
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ +PC 2VFVF
Slide 35
Slide 35 text
• ਤ ͨͱ͑Queue͕Amazon SQSͷ߹ +PC 3VO 2VFVF
Slide 36
Slide 36 text
͋Ε...
Slide 37
Slide 37 text
ͪΐͬͱͯΑ…✋
Slide 38
Slide 38 text
ຊ (ͬͱ) ~͋ͳͨͬͯͲΜͳํ(ܕ)ʁ~ Γ͙Β͍ཉ͍͠
Slide 39
Slide 39 text
લஔ͖͕͍ͯ͘͢·ͤΜ
Slide 40
Slide 40 text
ຊ (ͬͱ) ~͋ͳͨͬͯͲΜͳํ(ܕ)ʁ~ Γ͙Β͍ཉ͍͠ Amazon SQSͷϝοηʔδ͔ΒJobʹม͢Δ
Slide 41
Slide 41 text
Amazon SQSͷϝοηʔδ͔ΒJobʹม͢Δ • Job͕1छྨͩͬͨΒͳ͍ • ͔࣮͠͠ࡍ • ΫΤετΫϦΞϛογϣϯͷδϣϒ • QuestClearJob • ϑϨϯυʹϙΠϯτΛ༩͢Δδϣϒ • SendFriendPointJob • Unmarshalઌͷܕ͕ҟͳΔ
Slide 42
Slide 42 text
SQS͔ΒऔΓग़ͨ͠ϝοηʔδΛ దʹUnmarshal͢Δඞཁ͕͋Δ
Slide 43
Slide 43 text
No content
Slide 44
Slide 44 text
औΓग़ͨ͠λΠϛϯάͰ ͋ͳͨͲΜͳํ(ܕ)͔͍ͬͯͯ structΛ࡞Δඞཁ͕͋Δ
Slide 45
Slide 45 text
Ͳ͏ͬͯղܾ͔ͨ͠
Slide 46
Slide 46 text
reflect
Slide 47
Slide 47 text
reflect • reflect.New(reflect.Type) • reflect.Value͕ฦͬͯ͘Δ • reflect.Value.Interface() • Interface{}͕ฦͬͯ͘Δ • ͜ΕͰstructΛੜ(?)͢Δࣄ͕Ͱ͖Δ
Slide 48
Slide 48 text
reflect
Slide 49
Slide 49 text
reflect
Slide 50
Slide 50 text
͜ΕΛઌఔͷSQS Queueʹ ө͢Δͱ
Slide 51
Slide 51 text
SQS Queueʹө͢Δ
Slide 52
Slide 52 text
SQS Queueʹө͢Δ
Slide 53
Slide 53 text
SQS Queueʹө͢Δ
Slide 54
Slide 54 text
ิ • ͳΜͰJobຖʹQueueΛ༻ҙ͠ͳ͔ͬͨͷʁ • طʹJobͷ͕10ݸ͋Γ ࠓޙ૿͑Δ༧ఆ • ৽نͰJobΛ࡞Δʹ։ൃڥ/ຊ൪ͱ QueueΛ࡞ΔͷΦϖϨʔγϣϯ͕ࡶ
Slide 55
Slide 55 text
ิ
Slide 56
Slide 56 text
ิ • Queueଆ͕ԿͷJob͕ग़ೖΓ͢Δ ͔Δඞཁ͕ͳ͘ɺ ґଘ͠ͳ͍ํ͕Α͍ͱ͍͏݁ʹ
Slide 57
Slide 57 text
·ͱΊ • GoͷϓϩδΣΫτͰδϣϒΩϡʔΛ Amazon SQSΛ࣮ͬͯݱͨ͠ • reflect.New/reflect.Value/r.V.Interface() ͔ΒಈతʹܕΛੜͯ͠ղܾ
Slide 58
Slide 58 text
Ҏ্ ͋ͳͨͬͯͲΜͳํ?(ܕ)
Slide 59
Slide 59 text
Q&A
Slide 60
Slide 60 text
ࢀߟURL • https://aws.amazon.com/jp/sqs/ • http://awsdocs.s3.amazonaws.com/SQS/ latest/sqs-gsg.pdf • https://golang.org/pkg/reflect/ • ΈΜͳͷGoݴޠ