Upload
huy-do
View
121
Download
0
Embed Size (px)
Citation preview
実践akka
@huydx Adtech studio
ScalaおよびJava向けの並列および分散処理フレームワー
クです。
Actor == 人
Actorに関する概念
• Dispatcher
• MailBox
• Tell/Ask
• Supervisor
• Eventbus
Actorに関する概念
• Dispatcher
• MailBox
• Tell/Ask
• Supervisor
• Eventbus
Executor Pool
Message Queue
RPC
Manager
Pub/Sub
Actorってなのためのもの?
•Concurrency? •Parallelism?
•Concurrency? •Parallelism?
Java世界では?
• 並行処理プログラミングが難しい
• @volatile, share variable, mutex, synchronized, lockなどなど
• Concurrent Packageでだいぶ助かった • Atomic 変数、Executor Pool….
Actor世界では?
• 全部ノンブロッキング
• メールボックスの中のものを順次に処理する
Faq
• 共有なメモリを使いたい?
• 共有メモリを管理する専用Actorを利用して、そのActorに問い合わせする
• Actorに送ったメッセージすぐ回答もらいたい?
• Askパータンが用意されている
Actorの他にいいところ
• Monitoring構成で失敗したActor・処理できないメッセージを簡単にリーランできる(self-
healingシステム実現可能)
• Actorはアドレス・パスで管理しやすい
• Remote Actorで分散システムが実現可能
設計Faq
• できるだけ一つのActorが小さいなタスクをやるべき
• 設計するときに失敗するシナリオを考えるべき(let-
it-crash)
• Actor Systemをたくさん作らない
• メッセージをシリアライズできるものしか送らない