ScalaMatsuri 2018 Training Day (2018/03/16)での講演資料です http://2018.scalamatsuri.org/Read less
![Akkaで分散システム入門](https://cdn-ak-scissors.b.st-hatena.com/image/square/62cd0f665a05b1e25bb21ed9ea14718ed6b56fbf/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Fdistributed-system-with-akka-180316064100-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
概要 PlayFrameworkやAkka HTTPをつかっていて、うまくパフォーマンスがでなかった経験ありませんか? もしかしたらそれ、スレッドプールをうまく分割できていなかったからかもしれません。 PlayFrameworkやAkka HTTPなど、ノンブロッキングI/Oを前提につくられたライブラリやフレームワークでは、ブロッキングI/Oに十分な注意を払う必要があります。 具体的に言うと、ノンブロッキングI/Oの処理のみを実行するスレッドプールと、ブロッキングI/O(I/O待ちによりスレッドを占有する)を含む処理を実行するスレッドプールは分割し、それぞれ適切に設定する必要があります。 なぜスレッドプールをわけるか ノンブロッキングI/Oはその特性上、I/O待機中にCPUやスレッドを専有せず、他の処理に割り当てることができます。 この特性を活かし、PlayFrameworkやAkka H
「Akka」と聞くと、Actor、並列性、永続化、クラスタなどその特性や機能について目が行きがちです。本セッションでは、機能そのものの話やメリット・デメリットはいったんおいておき、「Akka を作って例えばどのようなものが作れるか?」にフォーカスします。実際に動くチャットサーバやメディアサーバの実装を見ながら、Akkaのどのような機能を組み合わせて実現しているかお話します。
19. 状態を内部に閉じ込めたActorの例 class PlayActor() extends Actor { private val track: AudioTrack = createNewAudioTrack //state. Thread UN-safe override def preStart(): Unit = track.play() override def receive: Receive = { //An actor retrieves and process a message from its mailbox one-at-a-time. case AudioPacketMessage(content:ByteString) => track.write(content.toArray[Byte], 0, content.length) } override d
システムの非機能要件は以前より高い要求を求められる傾向にあります。 たとえば、 – より多くのコアを使うには? – より短い応答時間にするには? – 限りなく0時間に近いダウンタイムにするには? – ペタ規模のデータを扱うには? などと考える機会が増えたと思います。 このような背景で登場したコンセプトが、”レスポンスが速い・障害に強い・負荷に応じてスケールする” 特徴を持つリアクティブシステム(リアクティブプログラミングのことではありません)です。最近注目されているので、言葉だけは耳にしたことがあるのではないでしょうか。クラウドやビッグデータ基盤の進化に合わせてアプリケーション設計の考え方も転換する時期だから注目されているのかもしれません。しかしながら、リアクティブシステムは登場してまだ間もないので、今後に備えてその鼓動を感じてもらえるセッションにしたいと思います。 そして、このリアクティ
こんにちは。先月、待望のAkka 2.4.0がリリースされたので、 2.4.0の目玉機能であるAkka Persistenceを試してみました。 いやー、待ちました。なかなかexperimental(実験的な機能の意味)が外れないのでやきもきしていましたが、やっとakka-persistence-experimentalからakka-persistenceになったので、自信を持ってブログで紹介することが出来るようになりました。リリースお疲れ様です! Akka 2.4.0についてはこちら↓ Akka 2.4.0 Released! | Akka Akka Persistenceについてはこちら↓ Persistence — Akka Documentation 今回の記事は、Akkaは知っているけどAkka Persistenceは知らないよという方向けの記事です。 ん?Elixir?知らな
ScalaのアクターライブラリであるAkkaでは今までHTTPがIOパッケージでサポートされてきませんでした。HTTPのサポートはAkka Streamの開発とともになされたのです。なぜアクターモデルとHTTPをすぐ統合せずにStreamの登場を待つことになったのか?この疑問に答えることはアクターの問題を考えるよい題材です。 Sprayの革新とその限界 SprayはAkkaのアクターモデルとHTTPを統合して成功したフレームワークです。SprayはJVMベースのフレームワークの中で最高のパフォーマンスを誇りました。SprayはServletがもつがスレッドの高速性と、NodeJSがもつイベントループによる大量のリクエストを効率的に捌くことの特性の両立を、アクターによって可能にしたのです。 ところがSprayはアクターモデルならではの問題とも戦うことになります。Reactive Manife
LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog saegusa2017-04-16Yoshihiro was a network engineer at LINE, responsible for all levels of LINE's infrastructure. Since being named Infra Platform Department manager, he is finding ways to apply LINE's technology and business goals to the platform. こんにちは。LINEでネットワークやデータセンターを担当している三枝です。2017年1月にJANOG39で登壇する機会を頂きましたので、今回
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く