Contenu connexe
Similaire à Geode hands-on (20)
Plus de Masaki Yamakawa (9)
Geode hands-on
- 1. ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by
Apache Geodeハンズオン
2017/3/14
ウルシステムズ株式会社
http://www.ulsystems.co.jp
mailto:info@ulsystems.co.jp
Tel: 03-6220-1420 Fax: 03-6220-1402
- 2. ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 1
自己紹介
山河 征紀
• コンサルタント@ウルシステムズ株式会社
• 並列分散処理, インメモリー処理
- 3. ULS 2
Copyright © 2011-2013 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by
Apache Geode概要
- 4. ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 3
今日のゴール
Geodeを使った実装のための基礎知識がついている
Geodeのデータへアクセスしてみる
データ更新イベントを取得してみる
- 5. ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 4
Apache GEODEとは
ざっくりいうとインメモリーの分散KVS
–データを各マシンのメモリーに分散配置
–大量トランザクションに対する高速処理
–動的なスケーラビリティ
–ミッションクリティカルでの利用
採用実績
–欧米の金融機関
–政府、防衛
- 6. ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 5
レプリケーションとパーティション
クラスター全体を論理的に1つのまとまりとして見たとき、
データをどのノードのメモリーにもつか、ということ
データの特性によって分散スタイルを選ぶ必要があるため、
この選択肢が充足していることは重要
パーティションレプリケーション
すべてのマシンで同一のデータ
を保持する
何れかのマシンにデータが存在
する
- 7. ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 6
Geodeを使う際の登場人物(プロセス)
Geodeでは次の3種類のプロセスが登場する
キャッシュサーバー
メモリー上のデータを管理するためのプロセス
データは複数のキャッシュサーバーに分散されリー
ジョンという単位で保持される
ロケーター
クラスター構成を管理するためのプロセス
大規模なクラスターを論理的なグループに分割する
こともできる
クライアント
キャッシュサーバーが管理するデータへアクセスす
るためのクライアント(Java/C++/C#/REST)
ロケーター
キャッシュサーバー
リージョン
ロケーター
キャッシュサーバー
リージョンキャッシュサーバー
リージョンキャッシュサーバー
リージョン
Java
クライアント
C++/C#
クライアント
REST
クライアント
クライアントは、ロケーターに
問い合わせることで任意の
キャッシュサーバーへ接続でき
る(RESTは別)
Geodeクラスター
- 8. ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 7
Embeddeモードとしてアプリケー
ション中でキャッシュサーバー機能
を実行してデータアクセスする
(geodeのjarを取り込む)
アプリケーションからデータへアクセスする際は、次の2つ
の方法がある
データ管理に特化したキャッシュ
サーバーを起動し、アプリケーショ
ンはクライアントとしてデータアク
セスする
アプリケーションからのデータアクセス
これら2つの方法を組み合わせることも出来る
キャッシュサーバー
リージョンアプリケーション
(クライアント)
キャッシュサーバー
リージョン
キャッシュサーバー
リージョン
アプリケーション
キャッシュサーバー
リージョン
アプリケーション
キャッシュサーバー
リージョン
※クライアントからのアクセスもできる
- 9. ULS 9
Copyright © 2011-2013 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by
実践!
- 10. ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 10
本日の最終的な姿
リアルタイムに更新されるチャットアプリ作成
リージョン
入力メッセージを
リージョンへ登録
リージョンへの登録イベント
を拾って他のクライアントへ
リアルタイムに更新
- 11. ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 11
JavaアプリケーションにGeodeを組み込み、P2P型のチャッ
トアプリを作成
ハンズオン#1:CUIチャットアプリ
Javaアプリケーション#1
(Geode組み込み)
Geode Cache
ChatMessage
(Region)
ChatMessageListener
(CacheListener)
Javaアプリケーション#2
(Geode組み込み)
Geode Cache
ChatMessage
(Region)
ChatMessageListener
(CacheListener)
メッセージ
表示
メッセージ入力
メッセージ入力
メッセージ
表示
メッセージ
連携
チャット
メッセージ
を蓄積
チャットメッセージ
のイベントを取得し、
コンソールへ表示
リージョン名 : ChatMessage
データポリシー : REPLICATE
- 12. ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 12
キャッシュサーバーとJavaアプリケーションを分離しクライ
アント-サーバー型のチャットアプリを作成
ハンズオン#2:CUIチャットアプリ
Javaアプリケーション#1
(Geodeクライアント)
Client Cache
ChatMessage
(Region)
ChatMessageListener
(CacheListener)
Javaアプリケーション#2
(Geodeクライアント)
Client Cache
ChatMessage
(Region)
ChatMessageListener
(CacheListener)
メッセージ
表示
メッセージ入力
メッセージ入力
メッセージ
表示
メッセージ
連携
チャットメッセージ
のイベントを取得し、
コンソールへ表示
リージョン名 : ChatMessage
データポリシー : RARTITION
キャッシュサーバー
Geode Cache
ChatMessage
(Region)
チャット
メッセージ
を蓄積
メッセージ
連携
- 13. ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 13
GUI版のチャットアプリを作成
ハンズオン#3:GUIチャットアプリ
Javaアプリケーション#1
(Geodeクライアント)
Client Cache
ChatMessage
(Region)
ChatMessageListener
(CacheListener)
Javaアプリケーション#2
(Geodeクライアント)
Client Cache
ChatMessage
(Region)
ChatMessageListener
(CacheListener)
メッセージ
表示
メッセージ入力
メッセージ入力
メッセージ
表示
チャットメッセージ
のイベントを取得し、
コンソールへ表示
リージョン名 : ChatMessage
データポリシー : RARTITION
キャッシュサーバー
Geode Cache
ChatMessage
(Region)
チャット
メッセージ
を蓄積
メッセージ
連携
メッセージ
連携
- 14. ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 14
Tutorial
https://github.com/masaki-yamakawa/GeodeHandson
- 15. ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 15
まとめ
ハンズオン#1:CUIチャットアプリ(Embeddedモード)
– Embeddedモードによる実行方法
– リージョンデータへのアクセス方法(put, get)
– リージョンイベントの取得方法
– レプリケーションとパーティションの違い
ハンズオン#2:CUIチャットアプリ(クライアント-サーバ)
– クライアント-サーバモードの実行方法
– Gfshによるロケーター、キャッシュサーバーの起動方法
– Pulseによるクラスター管理、および、データ参照方法(OQL実行)
– クライアントアプリでのイベント取得方法の違い
ハンズオン#3:GUIチャットアプリ
– APIからの設定方法
– Continuous Query使用方法