Java で Akka Stream を遊んでみる
Akka Stream は並列/分散処理を実現するためのライブラリのひとつです。他のライブラリ同様に、処理全体をいくつかの処理単位に分割し、複数箇所に独立して存在するマシンで並列に処理することができますが、Akka Stream は大きな特徴として、その処理単位を扱うバッファスペースを固定長(bounded buffer space)として実現しているという点があります。普通、分散処理では独立したマシン同士が処理データや処理結果を共有するためにメッセージ送信をしあうのですが、そこで課題となるのが受取ったメッセージの保管方法です。処理するデータを受け取ったとしても、自分の担当する処理内容が他よりも時間のかかる内容だった場合、受け取ったデータを捌ききれずに滞留してしまうことになります。このため、受け取ったデータの保管する領域を可変長にしてすべて保管できるようにしたり(この場合、保管領域が無尽蔵に必要となってしまう)、固定長の領域に補完しきれない分は捨ててしまったり(データの消失がありうる)といった手段が取られることがあります。
しかし Akka Stream は、いくつかの工夫によって、処理単位を扱う領域であるバッファスペースを固定長としたまま、持ちきれなかったデータを捨てることなくメッセージングを実現しています。
今回は最初ということで、Akka Stream の立ち入った話には触れずに公式ドキュメントの Java 向け Quickstart Guide の内容をさらってみたいと思います。
2 年前の年末くらいに一度触っていたのですが、それからバージョンが上がって使い勝手が良くなっているようなので、その辺の調査も兼ねた感じですね。
続きを読む Akka Stream コメント (0) 2018/02/16 17:18:54