java ee勉強会 開発合宿 成果発表

6
ZooKeeperで分散処理 20141124JavaEE勉強会 開発合宿 成果発表 Akihiro HARAI

Upload: akihiro-harai

Post on 18-Jul-2015

139 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Java EE勉強会 開発合宿 成果発表

ZooKeeperで分散処理

2014年11月24日JavaEE勉強会 開発合宿 成果発表

Akihiro HARAI

Page 2: Java EE勉強会 開発合宿 成果発表

行ったこと● ZooKeeper(Server)を動作させる● HaskellでWorkerを作成

○ 区間の中にある素数を列挙○ 例)

■ Request: {"from": 100000, "to": 100099}■ Response: [100003, 100019, 100043, 100049, 100057, 100069]

● 複数のWorkerを利用して高速に素数を見つけるClientを作成(Ruby)

● Serverで、利用できるWorkerを管理する○ Workerは動的に増減する前提

Page 3: Java EE勉強会 開発合宿 成果発表

システム構成Server

(port: 2181)Server

(port: 2182)

Server(port: 2183)

Replication

Worker(port: 3000)

Worker(port: 3001)

Worker(port: 3002) ・・・

Client

Ephemeral(はかない) Node 作成例) create /prime/3002セッションが切れると自動消滅使えるWorkerの問合せ

ls /prime>> [3000,3001,3002]

Webサービス利用例) http://localhost:3000 {"from":100000,"to":100099}>> [100003, 100019, 100043, 100049, 100057, 100069]

ZooKeeper

Page 4: Java EE勉強会 開発合宿 成果発表

デモ

Server(port: 2181)

Server(port: 2182)

Server(port: 2183)

Worker(port: 3002)

Worker(port: 3001)

Worker(port: 3000)

ZooKeeperリアルタイムStatus

Client

Page 5: Java EE勉強会 開発合宿 成果発表

デモの内容

● Workerを取り除く● Workerを追加する● Serverを1つ止める● 止めたServerを復旧させる● Serverを2つ止める

Page 6: Java EE勉強会 開発合宿 成果発表

学んだこと

● 動作させるだけならZooKeeperは難しくない● Haskellでwebサービスを作るのは難しい

○ 情報が多くない、古い

● HaskellでZooKeeperを扱うのは難しい○ 情報が少ない

● RubyでWorkerを扱うClientを作るのは大変○ 並行処理