Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
saaaaaaki
PPTX, PDF
20,580 views
Developing an Akka Edge1-3
Developing an Akka EdgeというAkkaの入門書を読んで勉強しています。 要約して社内勉強会で発表した時のスライドを手直ししたものです。
Software
◦
Read more
21
Save
Share
Embed
Embed presentation
Download
Downloaded 25 times
1
/ 44
2
/ 44
3
/ 44
4
/ 44
5
/ 44
6
/ 44
7
/ 44
8
/ 44
9
/ 44
10
/ 44
11
/ 44
12
/ 44
13
/ 44
14
/ 44
15
/ 44
16
/ 44
17
/ 44
18
/ 44
19
/ 44
20
/ 44
21
/ 44
22
/ 44
23
/ 44
24
/ 44
25
/ 44
26
/ 44
27
/ 44
28
/ 44
29
/ 44
30
/ 44
31
/ 44
32
/ 44
33
/ 44
34
/ 44
35
/ 44
36
/ 44
37
/ 44
38
/ 44
39
/ 44
40
/ 44
41
/ 44
42
/ 44
43
/ 44
44
/ 44
More Related Content
PPTX
Developing an Akka Edge4-5
by
saaaaaaki
PDF
Developing an Akka Edge6
by
saaaaaaki
PDF
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
by
TanUkkii
PDF
Akka入門
by
Masashi (Jangsa) Kawaguchi
PDF
実践Akka
by
Huy Do
PDF
Akka meetup 2014_sep
by
masahitojp
PDF
並行処理初心者のためのAkka入門
by
Yoshimura Soichiro
PDF
WebSocket+Akka(Remote)+Play 2.1 Java
by
Kazuhiro Hara
Developing an Akka Edge4-5
by
saaaaaaki
Developing an Akka Edge6
by
saaaaaaki
プログラミング言語のパラダイムシフト(ダイジェスト)ーScalaから見る関数型と並列性時代の幕開けー
by
TanUkkii
Akka入門
by
Masashi (Jangsa) Kawaguchi
実践Akka
by
Huy Do
Akka meetup 2014_sep
by
masahitojp
並行処理初心者のためのAkka入門
by
Yoshimura Soichiro
WebSocket+Akka(Remote)+Play 2.1 Java
by
Kazuhiro Hara
What's hot
PDF
Akka-Streams in Production
by
Kazunobu Raita
PPTX
Akka actorを何故使うのか?
by
Nyle Inc.(ナイル株式会社)
PDF
akka-doc-ja
by
TIS Inc.
PDF
Akkaとは。アクターモデル とは。
by
Kenjiro Kubota
PDF
Servlet と Future の関わり方 #scala_ks
by
Kazuhiro Sera
PPTX
Akkaの翻訳みんなでやろう Let's translate akka doc
by
賢太郎 前多
PDF
Scala警察のすすめ
by
takezoe
PPTX
【LT】akka receive とScala Javaの違い
by
賢太郎 前多
PDF
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
by
Asami Abe
PDF
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
by
Kazuhiro Sera
PPTX
Java使いにとっての関数
by
amkt922
PDF
Quasar: Actor Model and Light Weight Threads on Java
by
Taku Miyakawa
PDF
Real world android akka
by
Taisuke Oe
PDF
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
by
Kazuhiro Sera
PPTX
Scala勉強会 初心者向けハンズオン前編
by
takeuchi-tk
PDF
Skinny Framework 進捗どうですか? #fud_scala
by
Kazuhiro Sera
PDF
1周遅れのScala入学 #nds41
by
Kazumune Katagiri
PDF
Ruby紹介
by
Masahiro Tomita
PDF
MySQL/Ruby終了のお知らせ
by
Masahiro Tomita
PDF
形式手法で捗る!インフラ構成の設計と検証
by
y_taka_23
Akka-Streams in Production
by
Kazunobu Raita
Akka actorを何故使うのか?
by
Nyle Inc.(ナイル株式会社)
akka-doc-ja
by
TIS Inc.
Akkaとは。アクターモデル とは。
by
Kenjiro Kubota
Servlet と Future の関わり方 #scala_ks
by
Kazuhiro Sera
Akkaの翻訳みんなでやろう Let's translate akka doc
by
賢太郎 前多
Scala警察のすすめ
by
takezoe
【LT】akka receive とScala Javaの違い
by
賢太郎 前多
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
by
Asami Abe
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
by
Kazuhiro Sera
Java使いにとっての関数
by
amkt922
Quasar: Actor Model and Light Weight Threads on Java
by
Taku Miyakawa
Real world android akka
by
Taisuke Oe
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
by
Kazuhiro Sera
Scala勉強会 初心者向けハンズオン前編
by
takeuchi-tk
Skinny Framework 進捗どうですか? #fud_scala
by
Kazuhiro Sera
1周遅れのScala入学 #nds41
by
Kazumune Katagiri
Ruby紹介
by
Masahiro Tomita
MySQL/Ruby終了のお知らせ
by
Masahiro Tomita
形式手法で捗る!インフラ構成の設計と検証
by
y_taka_23
Viewers also liked
PPTX
akka-streamのマイクロサービスへの適用
by
Nyle Inc.(ナイル株式会社)
PPTX
Akka Clusterの耐障害設計
by
TanUkkii
PDF
とりあえず使えるSBT
by
Kiyotaka Kunihira
PPTX
Architecture of Falcon, a new chat messaging backend system build on Scala
by
TanUkkii
PDF
アクターモデルについて
by
Takamasa Mitsuji
PPTX
PHP開発者がScalaに入門して苦しんだ話
by
Nyle Inc.(ナイル株式会社)
PDF
Reactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
by
Zalando Technology
PDF
Zen of Akka
by
Konrad Malawski
PDF
Rakuten Technology Conference 2017 A Distributed SQL Database For Data Analy...
by
Rakuten Group, Inc.
akka-streamのマイクロサービスへの適用
by
Nyle Inc.(ナイル株式会社)
Akka Clusterの耐障害設計
by
TanUkkii
とりあえず使えるSBT
by
Kiyotaka Kunihira
Architecture of Falcon, a new chat messaging backend system build on Scala
by
TanUkkii
アクターモデルについて
by
Takamasa Mitsuji
PHP開発者がScalaに入門して苦しんだ話
by
Nyle Inc.(ナイル株式会社)
Reactive Design Patterns: a talk by Typesafe's Dr. Roland Kuhn
by
Zalando Technology
Zen of Akka
by
Konrad Malawski
Rakuten Technology Conference 2017 A Distributed SQL Database For Data Analy...
by
Rakuten Group, Inc.
Similar to Developing an Akka Edge1-3
PDF
Akkaの並行性
by
TIS Inc.
PDF
Akkaで分散システム入門
by
Shingo Omura
PPTX
非同期処理の基礎
by
信之 岩永
PDF
できる!並列・並行プログラミング
by
Preferred Networks
PDF
Akka/Actor introduction
by
Yuki Katada
PDF
リアクティブシステムとAkka
by
TIS Inc.
PDF
いまさら恥ずかしくてAsyncをawaitした
by
Kouji Matsui
PDF
How To Redmine !
by
H Y
PDF
これからの「async/await」の話をしよう
by
Kouji Matsui
Akkaの並行性
by
TIS Inc.
Akkaで分散システム入門
by
Shingo Omura
非同期処理の基礎
by
信之 岩永
できる!並列・並行プログラミング
by
Preferred Networks
Akka/Actor introduction
by
Yuki Katada
リアクティブシステムとAkka
by
TIS Inc.
いまさら恥ずかしくてAsyncをawaitした
by
Kouji Matsui
How To Redmine !
by
H Y
これからの「async/await」の話をしよう
by
Kouji Matsui
Developing an Akka Edge1-3
1.
Developing an Akka
Edge Chapter 1-3
2.
この本について Developing an Akka
Edge (著)Thomas Lockney, Raymond Tay Akka初心者向けの洋書 全191ページ・10章 せっかく読んでるので要約しました ※自分で調べた事や、考えた例も載せたのでスライドに正しくないことが書いてある可能性があります※
3.
各章の概要 Chapter 1…ロックを使った並列処理がよくない理由 アクターの概要 Chapter 2…とりあえずAkkaを動かしてみる Chapter
3…ビルドツールの紹介 & ログの出し方など Akkaを触った事がある人はChapter4からでいいかも
4.
Chapter 1. Introduction ・並列処理のよくあるテクニック ⇒データを共有させて、ロックを使って整合性を保つ ・しかし、ロックにはデメリットがある
5.
デメリット① 処理速度が頭打ちになる 例「Webサイトにユーザーが訪れたらカウントする」 合計値を更新するメ ソッド スレッド A スレッド B 使用中なら待つ
6.
スレッドが増えると待ち時間が無限に… 例「Webサイトにユーザーが訪れたらカウントする」 合計値を更新するメ ソッド スレッド スレッド スレッド スレッド スレッド スレッド スレッド スレッド スレッド スレッド スレッド 使用中なら待つ
8.
デメリット② デッドロック/ライブロック 2つのインスタンスのロックを取ろうとして 1つ取ったが、もう1つがロックされていた時 スレッド A スレッド B
9.
デッドロック お互いがお互いのロックを解放するのを待っている ⇒ずっと動かないまま スレッド A スレッド B
10.
ライブロック 一度ロックを解放して、もう片方のロックを取る ⇒どちらも片方のロックを持っているので、取得と解放を繰り返し続ける スレッド A スレッド B
11.
他にも 設計が大変などいろいろデメリットがあるので アクターモデルを使いましょう
12.
アクターについて ・メッセージのやりとりを使った計算機処理の手法 1973年に論文が発表された ・Actorとは1つのエンティティ メッセージの送受信を通して他のアクターとやりとりする
13.
メッセージを受け取った時の処理を定義しておく Actor case “How are
you?” => sender ! “I’m fine thank you” case “Nice to meet you” => sender ! “Nice to meet you too” case s:String => sender ! “Pardon?”
14.
メッセージを受け取った時の処理を定義しておく ①アクターがメッセージを受信する Actor case “How are
you?” => sender ! “I’m fine thank you” case “Nice to meet you” => sender ! “Nice to meet you too” case s:String => sender ! “Pardon?” “How are you?”
15.
メッセージを受け取った時の処理を定義しておく ①アクターがメッセージを受信する ②定義されたふるまいをする Actor case “How are
you?” => sender ! “I’m fine thank you” case “Nice to meet you” => sender ! “Nice to meet you too” case s:String => sender ! “Pardon?” “How are you?” “I’m fine thank you”
16.
結局 ・メッセージが来たらアクターのMailboxに貯まる ・メッセージを到着した順に1つずつ処理する ・あらかじめ定義されたふるまいを実行する
17.
Akkaのアクターの特徴 ・アドレスを持つ アドレスを使ってメッセージを送れる ・子アクターを作ることができる ヒエラルキーを構成する
18.
ヒエラルキー ・1つのアクターを始点としてヒエラルキーを構成する どんなアクターを作るときもActorSystemの参照が必要 ActorSystemの内部のアクターの子としてアクターを作れる
19.
ヒエラルキー Akkaの構造がヒエラルキーになっている理由⇒耐障害性 親アクターは子アクターにExceptionが発生した時にどうするか決められる ・子アクターを再起動させる ・子アクターを再開させる ・子アクターを終了させる ・例外を次の親に投げる
20.
ヒエラルキー ヒエラルキーはファイルシステム的な感じで、分かりやすい 例:accountingというActorsystemから作られた accountMonitorというアクターから作られた accountCrediterというアクター akka://accounting/user/accountMonitor/accountCreditor
21.
Akkaのアクターの特徴② 遠隔操作 本当にスケーラブルな並行処理の鍵となる アクターがどこにあっても (同じマシンでも、違うJVMのインスタンスでも、全く別のマシンでも) 同じように動く アクターのアドレスさえ知っていればローカルもリモートも関係ない ⇒location transparency
22.
Chapter 2.Working with
Actors ・既存プロジェクトへのアクターの追加の仕方 ・とりあえずアクターを動かしてみる
23.
Putting actors to
work アクターを使うのにまず必要な事 ・akka.actor.Actorトレイトを継承したクラスと、そこにreceiveメソッドを定義 ・ActorSystemを作る ・ActorSystemからアクターを生成
24.
receiveメソッドを定義
25.
ActorSystemを生成 ActorSystemからさっき定義したアクターを生成
26.
Actorインスタンスを作って開始させるとActorRefインスタンスが取得できる *この時点でもう非同期になっている* ActorRef…Akkaのアクターを参照する時に必ず使うオブジェクト Propf…アクターを作る時に使われる設定オブジェクト(ファクトリー的な)
27.
アクター内部からActorSystemにアクセス contextというプライベート変数 context.system :自分がいるのアクターシステムを参照できる context.stop(ref):ref(他のアクター)を停止させる 非同期に他アクターの開始・停止ができる
28.
メッセージの送り方① tell ActorRefオブジェクト と
!メソッドを使ってメッセージを送れる
29.
メッセージの送り方② ask ?メソッドはFutureを返す Futureの中身…送り先のアクターが返す値(処理済/まだ処理されていない/永遠に処理されない) 永遠に処理されない可能性もあるので、implicit valを使って時間を設定 アクターへ送るメッセージは非同期なので、アクター以外のコード内でレスポンス を得るにはFutureを使う必要がある
30.
Futureの中身を取り出す onCompleteメソッドはFutureインスタンスで使えるコールバック mapToで戻り値の型を指定 設定したタイムアウトの時間を過ぎるとFailureが返される
31.
最後に必ずActorSystemを終了させないといけない
32.
Chapter 3.Running with
Akka ・ビルドツールはいろいろあるけど、sbtがおすすめなのでちょっと紹介 ・ロギングとか
33.
The sbt build
defenition AntやRave⇒ビルドファイル名が指定されてる Mavenやsbt⇒ディレクトリ構造が指定されてる sbt Scalaのコード ⇒ src/main/scala以下と src/test/scala以下 設定ファイルなど ⇒ src/main/resources以下と src/test/resources以下 (設定でいろいろかえられる)
34.
build.sbtに設定を書く…project名とか、Scalaのバージョンや依存性 *決まり事* 全ての設定は空行をはさむ := 設定の割当 += 既にある設定に追記(libraryDependenciesとか) ++=
コレクション(Seqとか)を設定に追加する
35.
%%はScalaのバージョンを追記してくれる akka-actor_2.10
36.
sbtで使えるタスク upload…依存ライブラリの更新 compile test run…mainメソッドを探す 1つ以上あれば、どれを実行するかプロンプトに表示される
37.
Akka and application
configuration AkkaではActorSystemの設定に TypesafeConfig library を使っている JSONみたいな感じ HOCON(Human Optimized Config Object Notation)と知られている 独自の設定は /src/main/resources/application.conf に記述する
38.
書き方①
39.
書き方②
40.
Logging in Actors
and elsewhere Akkaのロギングは(もちろん)非同期 ロギングの方法 ①デフォルトのLogging機能を使う ②ActorLoggingトレイトをミックスインしたものを使う akka.actor.debug.receive = on ミックスインしたクラスに def receive = LoggingReceive{}を定義
41.
①デフォルトのLogging機能を使う build.sbt application.conf あとロギングのXMLを定義
42.
②ActorLoggingトレイトをミックスイン application.conf クラスを定義
43.
JavaベースのLoggingフレームワークと同様に error,warning,info,debug が使える {}でログ内に代入できる
44.
ビルドの仕方、ログの出し方が分かったので 次の章ではAkkaの特徴について触れる
Download