Upload
masaki-toyoshima
View
1.000
Download
1
Embed Size (px)
Citation preview
copyright Fringe81 Co.,Ltd.
LT: Akka Stream x Kinesis第2回Reactive System Meetup in 西新宿
2016/02/02
@mtoyoshi
copyright Fringe81 Co.,Ltd.
@mtoyoshi
Fringe81で働くScalaエンジニア
以前、関数型ストリーム処理勉強会でAkka Streamについて話しましたhttp://www.slideshare.net/MasakiToyoshima/akka-stream-54843336
copyright Fringe81 Co.,Ltd.
OutOfMemoryの危険
Actor Actor
Akka StreamといえばBack-Pressure(?)
各ステージはBufferを持つのでした
copyright Fringe81 Co.,Ltd.
● Write: 秒間1000records/shard, 1MB● Read: 秒間5req/shard, 2MB● Shard数増減はカジュアルに出来る● 24Hデータ保持● アプリ側で読み込み済み箇所を記録● 類似サービスにKafkaがある
Kinesis
copyright Fringe81 Co.,Ltd.
EC2 Kinesis
... ...
● fluent-plugin-kinesisを使用した○ EC2→S3で利用していた○ 仮にshardの処理量を超えて書き込むとエラー
となるがリトライしてくれる
EC2
copyright Fringe81 Co.,Ltd.
EC2 Kinesis
... ...
● KCL(Kinesis Client Library)を使用した○ 以下実装済みでAppコードに集中できる○ 読み込み箇所の記録(Dynamo)○ Shard増減対応○ CloudWatchメトリクス記録
EC2Kinesis
copyright Fringe81 Co.,Ltd.
EC2 Kinesis
... ...
override def processRecords(pri: ProcessRecordsInput) = {
val records: List[Record] = pri.getRecords().asScala.toList
Source(records) .map{ record => new String(record.getData().array(), CHARSET) } ….
EC2Kinesis
usingAkka Stream
copyright Fringe81 Co.,Ltd.
Spark1.6でKCLを使ったCheckpoint関連のbugが取り除かれ、晴れて(?)コード上のコメントから制約を伝える部分が消える
https://github.com/apache/spark/pull/9421