© 2015 Lightbend Inc. Akka is Open Source and available under the Apache 2 License. Last updated: 10月 30, 2017
ストリームは基本的にはソースから始まります。Akka Stream を始める場合も然りです。しかしまずは、ストリーミングのために必要なものをインポートしてみましょう。
今回のお題 『Akka実践バイブル』です。 鈍器レベルの重厚さを持つこの本を、タイトルの通りゆっくりと読み解いていきたいと思います。 普段はAkkaどころかScalaすら使わないのでどこまで正確に書けるかわからないけど、 隔週くらいのペースで読み解いていきたいです。 今後の予定 第1章 Akkaの紹介 第2章 最小のAkkaアプリケーション 第3章 アクターによるテスト駆動開発 第4章 耐障害性 第5章 Future 第6章 Akkaによるはじめての分散アプリケーション 第7章 設定とロギングとデプロイ 第8章 アクターの構造パターン 第9章 メッセージのルーティング 第10章 メッセージチャネル 第11章 有限状態マシンとエージェント 第12章 ストリーミング 第13章 システム統合 第14章 クラスタリング 第15章 アクターの永続化 第16章 パフォーマンスTips 第17章 Akk
結構前からよく 「大規模データ処理業務経験者 優遇」 なんていう記事、広告などをちらほら見かける気がして、いろいろググってみたところ、衝撃的な記事を発見。 バッチを Akka Streams で再実装したら100倍速くなった話 #ScalaMatsuri プロジェクト仕様とライブラリとの相性とかもあるだろうから、何でもかんでもAkka-Stream使えば早くなる、という問題でもないでしょうが、そうは言っても、こういった効率改善事例を実現させられたら、エンジニア冥利につきるでしょう。 上記のリンクではAkka-Stream以外にも、DBにアクセスするためのSlick使ったり、単純にサーバの実メモリ上げることで、総合的に295倍の効率アップを実現しているようです。 Slickの勉強は次回に回すとして、今回はAkka-Streamの使い方と、CPUマルチコアを使った非同期処理を本家サイト等眺めな
Akka Streams って? Akka Streams は Reactive Streams(ノンブロッキングでback pressureな非同期ストリーム処理の標準仕様)のAkka実装。 つまるところ、Back-pressure によってSubscriber側は受けきれない仕事を受けず、Subscriber側でどのくらい仕事を受けることができるかPublisher側に通知する方式をとることで、効率よく処理を行うことができるようにするものです。 また、Akka Streams を実装する時には構成の項で示すようなフローチャートを記載することが多く、コードの読み手にとっても、わかりやすく処理内容を伝えることができます。 Akka Streamsの基本に関しては下記を参考にさせていただきました。 Akka Stream についての基礎概念 Akka Document 今回やってみること 今
Akka Streams が2.4以降からexperimentalを外して、正式版をリリースしました。丁度会社で3日のHackerDaysを機に、Akka Streams を勉強しはじめました。 この記事では、AkkaStreamの公式ドキュメントを抜粋し、翻訳しながら、AkkaStreamの基礎概念を説明します。 Akka Streams ってなに 背景 今のInternet上、我々は膨大なデータを消費している。その大量のデータを人々はビッグデータと呼んでいるw。 もう昔みたいにデータを全部ダウンロードして処理、処理完了してアップロード的な処理は時間掛かりすぎ、そもそも一台のサーバに保存しきれないデータは処理できないので、Streamみたいな流れとしての処理が必要になっている。 Akkaが使うActorモデルもその一例、データを分割し、メッセージとしてActorに送る、Actorは只々流
This document discusses architectural safety measures for distributed systems using Akka. It begins by introducing Akka and how it can be used to implement timeouts, circuit breakers, bulkheads and other patterns for handling failures in distributed systems. It then covers specific Akka features like actors, supervisors and clustering that provide tools for building resilient distributed architect
分散システムについては、もう随分と前から学びたいと思っていました。ただ、それは一度首を突っ込んだら最後、ゴールのない迷路に迷い込むようなものなのです。どこまでも続いているウサギの穴のようなものです。分散システムに関する文献は星の数ほど存在します。様々な大学からたくさんの論文が発表されているばかりでなく、膨大な数の書籍もあるのです。私のような全くの初心者には、どの論文を読んだらいいのか、どの書籍を買ったらいいのか、見当もつきません。 そんなとき、一部のブロガーが、 分散システムエンジニア (それがどういう意味であれ)になるなら知っておくべき論文というものを推奨しているのを見つけました。その一部を紹介しましょう。 FLP , Zab , Time, Clocks and the Ordering of Events in a Distributed Systems , Viewstamped
Concurrency and Fault Tolerance Made Easy: An Akka Tutorial With Examples Writing concurrent programs is hard. Having to deal with threads, locks, race conditions, and so on is highly error-prone and can lead to code that is difficult to read, test, and maintain. This post provides an introductory guide to the Scala-based Akka framework, showing (with code samples) how Akka facilitates and simplif
Dependency The Akka dependencies are available from Akka’s library repository. To access them there, you need to configure the URL for this repository. sbtresolvers += "Akka library repository".at("https://repo.akka.io/maven") Maven<project> ... <repositories> <repository> <id>akka-repository</id> <name>Akka library repository</name> <url>https://repo.akka.io/maven</url> </repository> </repositori
Actor API extends Actorしたときに使える APIの説明 context.actorOfでchild actorつくる start/stopのhook etc. Actor Lifecycle 図を見る 登場人物 ActorPath ActorSelection pathの表現 actor refの名前解決 ActorRef incarnationの表現 pathを持つ uidを持つ Actor Incarnation pathに所属 uidを持つ mailboxを持つ 依存関係 Actorの構成要素の依存関係 Actor -> context=ActorContext -> self = ActorRef -> path=ActorPath Lifecycle Monitoring aka DeathWatch あるActorの子供をwatch対象にする import
Scala 2.10 から付いてくる Akka の Actor についてのお勉強メモ。 全然まとまっていないが晒しておく。 概念 Actor akka.actor.Actor。 メッセージを受けて処理をする人。 Mailbox Actorへのメッセージが溜まるところ。 Supervision Actor間の依存関係のこと。 Actorインスタンスはツリー構造になっている。 親が supervisor となる。 Actor が失敗したらどうするかは supervisor の actor が制御する。 親 actor が shutdown したら、その子どもは全て shutdown する。 タスクのまとまり毎にサブツリーを形成するようにすると良いらしい。 Actor Path Actorインスタンスにはツリー構造上の位置を表す文字列がついており、これを actor path と呼ぶ。 /, /
こんにちは!Smalgoの來田です。 注意:タイトルは過激ですが内容至って普通なチュートリアル記事です。 仕事でWorkerを作った時に使ってみてめっちゃ便利だと思ったのでAkka Streamsについて書きたいと思います! まだまだ中の実装の深いところまで追えてるわけじゃないので間違っていたら教えてください。 Akka Streamsとは Reactive Streams(ノンブロッキングでback pressureな非同期ストリーム処理の標準仕様)のAkka実装 Back Pressureとは 非同期なストリーム処理の場合下記の問題が起きる Publisher側の処理が早い場合Subscriber側のバッファーが溢れてしまう Subscriberに遠慮してPublisher側の処理を抑えた場合は無駄が多くなってしまう それをSubscriberが自分が処理できる量をPublisherに
I started mapping out this post over a month ago after I saw another question about how to handle blocking database calls on the Akka mailing list. I’ve been working towards most of what follows over the last year and after discussing the basics with a few others in the Vancouver Polyglot community with some additional prompting from Saem, I finally put this together (project link for the lazy). T
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く