狠狠撸
Submit Search
础办办补とは。アクターモデル とは。
?
4 likes
?
9,222 views
K
Kenjiro Kubota
Follow
2/28社内勉强会用
Read less
Read more
1 of 49
Download now
Download to read offline
More Related Content
础办办补とは。アクターモデル とは。
1.
础办办补とは。アクターモデル とは。 #2/28社内勉強会@KenjiroKubota
2.
础办办补とは。
3.
の前に、
4.
Akkaの誕生した背景 2000年代中盤… CPU(主にシングルスレッド)の性能限界 アプリケーションを並行で動作させる。 ● マルチスレッド処理 ●
分散処理
5.
分散処理を行うための、Akka Lightbend社(旧Typesafe社)によって開発されたオープンソースのJava/Scala向けツールキット 並行?分散アプリケーションをシンプルに単一モデルで実装するプログラミングモデルを提供する。 ● 回復性…システムにダウンタイムを発生させない ● 即応性…トラフィックに対して素早く反応する ●
弾力性…サーバーやコア数によってスケールさせる アクターモデル プログラミング
6.
アクターモデル 並行処理を効率的に実現する手法のひとつ 1973年にカール?ヒューイット氏が発表した並列処理を行う計算モデル アクターモデル におけるアクターは、オブジェクト指向プログラミング におけるオブジェクトのようなもの(と思っておくと理解しやすい?)
7.
アクターモデル アクターはメールボックス、アドレスを持ち、メッセージを受け取ることができる。 インメモリに状態を持ち、アプリケーションが再起動されてもログから状態を復帰できる。 アクター メールボックス メッセージ アドレス
8.
アクターモデル アクターは別のアクターを生成することができる。 また、そのアクターを監督する アクター メールボックス メッセージ アドレス
9.
アクターモデル 生成した別のアクターに、メッセージを送信することができる。 また、アクターは受け取ったメッセージの種別により振る舞いを変えることができる(状態変化) アクター メールボックス メッセージ アドレス
10.
雑に実装ベースで见る
16.
! = tel 返信を受け取らない ?
= ask 返信を受け取る
21.
アクターの分散処理
22.
分散処理 複数のアクターに送信することで分散処理が行える。 デフォルトではメッセージはメールボックスの到着順に処理される。
23.
分散処理 アクターは設定を変更するだけでリモートに設置することも可能(位置透過性) サーバーA サーバーB
24.
雑に実装ベースで见る(2)
25.
最初の设定
26.
変更后の设定
27.
実装は変わらず(位置透过性???!)
28.
搁别尘辞迟别用にアプリケーションを作成(+础肠迟辞谤)
29.
搁别尘辞迟别の设定
30.
実行コンソール
31.
搁别尘辞迟别コンソール
32.
搁别尘辞迟别コンソール 呼び出し側がsys.exit()して切断したのでWARNが出ているもよう
33.
耐障害性
34.
let it crash Akkaではlet
it crash(クラッシュするならさせておけ)の思想で設計されている。 障害発生時には障害発生箇所をクラッシュさせておき、スーパーバイザー(監督を行う親アクター) へエスカレートを行う。 アクターではtry~catchのように、正常系処理の中に障害回復処理を含むのではなく、正常フローと 回復フローを分けて実装する。 実際にアクターで障害が発生した場合は親アクターに障害通知を行い、監督を行う親アクターが子ア クターの回復方法を決定する
35.
回復方法の決定 再起動 アクターを再生成して処理を続行する 再開 クラッシュしたアクターを続行させる。クラッシュは無視される 停止 アクターを停止させ、メッセージを送信しない エスカレート このアクターで回復方法が判断できない場合(回復方法の未定義)、さらに上位のアクターへエ スカレートする
36.
雑に実装ベースで见る(3)
38.
OneForOneStrategy AllForOneStrategy 問題の発生したアクターのみ適応 一つのアクターに問題が発生した場合すべてのアクターに適応
40.
Restart Resume 再起動 再開 Stop 停止 Escalate エスカレート
44.
1 2 3
45.
1 2 3
46.
Circuit Breaker 外部サービス障害時に即座にエラーを返す仕組み ● リトライによるネットワーク帯域の無駄遣いが減る ●
レイテンシを低く抑えられる ● 障害の連鎖を抑えられる ● Close, Open, Half-Openの状態をとる 参照) /negokaz/lagom-reactive-microservices-architecture#66
47.
Open Close 回路が開いた状態 = 通信できない 回路が閉じた状態 = 通信できる
48.
时间切れおわり
49.
今日の内容はこの本を参考にしています。
Download