32. Copyright (C) 2017 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 35
PulsarClient client = PulsarClient.create(
"pulsar://broker.usw.example.com:6650");
// Consumerの設定にサブスクリプションタイプを追加
ConsumerConfiguration conf = new ConsumerConfiguration();
conf.setSubscriptionType(SubscriptionType.Shared);
Consumer consumer = client.subscribe(
"persistent://my-property/us-west/my-namespace/my-topic",
"my-subscription-name", conf);
Javaのサンプルコード - サブスクリプションタイプの指定
33. Copyright (C) 2017 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 36
アーキテクチャ
34. Copyright (C) 2017 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 37
システム構成図 ■Broker
‣ クライアントとのメッセージの
やり取りを担当
‣ 「状態」を持たないため増設が容易
■Bookie
‣ BookKeeperのストレージノード
‣ トピックに送信されたメッセージや
それに関連するデータを保存
■ZooKeeper
‣ トピックの管理に必要なメタ情報を
保存
‣ Local ZKはクラスタ内に閉じた
情報を担当
‣ Global ZKは全てのクラスタで
共有すべき情報を担当
Producer Consumer
Broker 1 Broker 2 Broker 3
Bookie
1
Local
ZooKeeper
Bookie
2
Bookie
3
Pulsar クラスタ
Global
ZooKeeper
35. Copyright (C) 2017 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 38
Apache BookKeeperとは?
▪ オープンソースの分散型ログストレージサービス
▪ データを複製し複数のノード(Bookie)に分散して保存 → 強い耐障害性
▪ ノード数を増やせば容量と速度の向上が可能 → スケーラブル
A
Bookie2 Bookie3
D
C
A
B
D
B
C
Bookie1
データの複製数は自由に変更可能
Apache BookKeeperはApache Software Foundationの
米国およびその他の国における登録商標または商標です。
37. Copyright (C) 2017 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 40
Pulsar on Kubernetes
38. Copyright (C) 2017 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 41
Kubernetesとは?
▪ コンテナ型仮想化技術「Docker」のためのオーケストレーションツール
› コンテナ = 隔離されたアプリケーション実行環境
› VM型仮想化とは違ってOSの仮想化などはしないため軽量
コンテナ
App
ホストOS
ハードウェア
コンテナ
App
複数の仮想的なホストが
動いているように見える
39. Copyright (C) 2017 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 42
Dockerの問題点の例
コンテナ
App
コンテナ
App
Private IP
ホスト1
コンテナ
App
コンテナ
App
❓
ホスト2
Private IP
NATなどによる変換が必要 → 管理が煩雑、スケールアウトが困難
40. Copyright (C) 2017 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 43
Kubernetesを使うと…
コンテナ
App
コンテナ
App
Cluster IP
Kubernetesクラスタ (複数台のホストから構成)
コンテナ
App
コンテナ
App
Cluster IPCluster IP
あたかも1台の実行環境であるかのように利用可能
41. Copyright (C) 2017 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 44
Pulsar on Kubernetes
▪ Pulsarは様々なKubernetesクラスタに簡単にデプロイ可能
› Google Container Engine (GKE)
› Amazon Web Service (AWS)
› 独自クラスタ
▪ 今回はGKEでのデプロイ方法をご紹介
› 詳細な手順はこちら:
https://pulsar.incubator.apache.org/ja/deployment/Kubernetes/
42. Copyright (C) 2017 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 45
Google Cloud Platformの準備
▪ 事前準備として以下が必要
› cloud.google.comにサインアップできるGoogle Cloud Platformのアカウント
› 既存のCloud Platformプロジェクト
› Google Cloud SDK (特にgcloudとkubectlツール)
無料トライアルアカウントでも可
43. Copyright (C) 2017 Yahoo Japan Corporation. All Rights Reserved. 無断引用・転載禁止 46
Google Cloud Platformの準備