Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Geode hands-on

826 views

Published on

Apache Geode ハンズオン資料です。
ソースコードはこちら:https://github.com/masaki-yamakawa/GeodeHandson

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Geode hands-on

  1. 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. 2. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 1 自己紹介 山河 征紀 • コンサルタント@ウルシステムズ株式会社 • 並列分散処理, インメモリー処理
  3. 3. ULS 2 Copyright © 2011-2013 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by Apache Geode概要
  4. 4. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 3 今日のゴール Geodeを使った実装のための基礎知識がついている Geodeのデータへアクセスしてみる データ更新イベントを取得してみる
  5. 5. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 4 Apache GEODEとは ざっくりいうとインメモリーの分散KVS –データを各マシンのメモリーに分散配置 –大量トランザクションに対する高速処理 –動的なスケーラビリティ –ミッションクリティカルでの利用 採用実績 –欧米の金融機関 –政府、防衛
  6. 6. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 5 レプリケーションとパーティション クラスター全体を論理的に1つのまとまりとして見たとき、 データをどのノードのメモリーにもつか、ということ データの特性によって分散スタイルを選ぶ必要があるため、 この選択肢が充足していることは重要 パーティションレプリケーション すべてのマシンで同一のデータ を保持する 何れかのマシンにデータが存在 する
  7. 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. 8. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 7 Embeddeモードとしてアプリケー ション中でキャッシュサーバー機能 を実行してデータアクセスする (geodeのjarを取り込む) アプリケーションからデータへアクセスする際は、次の2つ の方法がある データ管理に特化したキャッシュ サーバーを起動し、アプリケーショ ンはクライアントとしてデータアク セスする アプリケーションからのデータアクセス これら2つの方法を組み合わせることも出来る キャッシュサーバー リージョンアプリケーション (クライアント) キャッシュサーバー リージョン キャッシュサーバー リージョン アプリケーション キャッシュサーバー リージョン アプリケーション キャッシュサーバー リージョン ※クライアントからのアクセスもできる
  9. 9. ULS 9 Copyright © 2011-2013 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 実践!
  10. 10. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 10 本日の最終的な姿 リアルタイムに更新されるチャットアプリ作成 リージョン 入力メッセージを リージョンへ登録 リージョンへの登録イベント を拾って他のクライアントへ リアルタイムに更新
  11. 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. 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. 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. 14. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 14 Tutorial https://github.com/masaki-yamakawa/GeodeHandson
  15. 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使用方法

×