Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
オラクルエンジニア通信
PPTX, PDF
643 views
Oracle Cloud Infrastructure Streaming Service 技術詳説
OCI Streaming Serviceについての技術詳細資料です。
Technology
◦
Related topics:
Oracle Cloud Infrastructure
•
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 13
2
/ 13
3
/ 13
4
/ 13
5
/ 13
6
/ 13
7
/ 13
8
/ 13
9
/ 13
10
/ 13
11
/ 13
12
/ 13
13
/ 13
More Related Content
PDF
PostgreSQLレプリケーション徹底紹介
by
NTT DATA OSS Professional Services
PPTX
分散ストレージ技術Cephの最新情報
by
Emma Haruka Iwao
PPTX
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
by
Ohyama Masanori
PPTX
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
by
NTT DATA Technology & Innovation
PDF
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
by
Shinya Sugiyama
PDF
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PPTX
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
by
NTT DATA Technology & Innovation
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQLレプリケーション徹底紹介
by
NTT DATA OSS Professional Services
分散ストレージ技術Cephの最新情報
by
Emma Haruka Iwao
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
by
Ohyama Masanori
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
by
NTT DATA Technology & Innovation
MySQL InnoDB Clusterによる高可用性構成(DB Tech Showcase 2017)
by
Shinya Sugiyama
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
What's hot
PPTX
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
by
NTT DATA Technology & Innovation
PDF
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
by
Uptime Technologies LLC (JP)
PDF
KafkaとAWS Kinesisの比較
by
Yoshiyasu SAEKI
PPTX
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PPTX
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
by
NTT DATA Technology & Innovation
PPTX
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
by
NTT DATA Technology & Innovation
PDF
auto_explainのススメ (第48回 PostgreSQLアンカンファレンス 発表資料)
by
NTT DATA Technology & Innovation
PDF
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
by
NTT DATA Technology & Innovation
PPTX
OCI GoldenGate Overview 2021年4月版
by
オラクルエンジニア通信
PDF
PostgreSQLバックアップの基本
by
Uptime Technologies LLC (JP)
PPTX
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
by
NTT DATA Technology & Innovation
PPTX
iostat await svctm の 見かた、考え方
by
歩 柴田
PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
by
NTT DATA Technology & Innovation
PDF
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
PostgreSQLでスケールアウト
by
Masahiko Sawada
PDF
PostgreSQL 15 開発最新情報
by
Masahiko Sawada
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
PDF
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
by
Uptime Technologies LLC (JP)
KafkaとAWS Kinesisの比較
by
Yoshiyasu SAEKI
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
by
NTT DATA Technology & Innovation
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
by
NTT DATA Technology & Innovation
auto_explainのススメ (第48回 PostgreSQLアンカンファレンス 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
by
NTT DATA Technology & Innovation
OCI GoldenGate Overview 2021年4月版
by
オラクルエンジニア通信
PostgreSQLバックアップの基本
by
Uptime Technologies LLC (JP)
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
by
NTT DATA Technology & Innovation
iostat await svctm の 見かた、考え方
by
歩 柴田
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
by
NTT DATA Technology & Innovation
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQLでスケールアウト
by
Masahiko Sawada
PostgreSQL 15 開発最新情報
by
Masahiko Sawada
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
Similar to Oracle Cloud Infrastructure Streaming Service 技術詳説
PPTX
Streamingご紹介
by
オラクルエンジニア通信
PDF
20130612 ibm big_dataseminar_streams
by
Atsushi Tsuchiya
PPTX
Modern stream processing by Spark Structured Streaming
by
Sotaro Kimura
PDF
【基本を知ろう】クラウド・データレイクを実現する各サービス最新情報(Oracle Cloudウェビナーシリーズ: 2020年10月15日)
by
オラクルエンジニア通信
PDF
20111215 12 aws-meister-sqs_sns_sdb-public
by
Amazon Web Services Japan
PPTX
Power BI をシステムやアプリ開発と一緒に使うなら…~リアルタイムストリーミングの使い方~
by
Yugo Shimizu
PDF
【ヒカラボ】RDS for MySQL → Aurora
by
Yuki Kanazawa
PDF
Oracle Cloud PaaS & IaaS:2019年8月度サービス情報アップデート
by
オラクルエンジニア通信
PPTX
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
by
オラクルエンジニア通信
PDF
Batch and Stream processing with SQL
by
SATOSHI TAGOMORI
PDF
スマートニュースの世界展開を支えるログ解析基盤
by
Takumi Sakamoto
PDF
Amazon Web Servicesのご紹介 - 東北クラウド実践カンファレンス2011
by
SORACOM, INC
PPTX
OracleのCloud Native 戦略/ソリューションの特徴
by
オラクルエンジニア通信
PPTX
Stream processing on AWS
by
Mitsuharu Hamba
PDF
DynamoDB Streamを使ったリアルタイム分析
by
ShinsukeYokota
PPTX
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
by
GoAzure
PDF
Sansanがメッセージング (SQS) でスケーラビリティを手に入れた話
by
Atsushi Kambara
Streamingご紹介
by
オラクルエンジニア通信
20130612 ibm big_dataseminar_streams
by
Atsushi Tsuchiya
Modern stream processing by Spark Structured Streaming
by
Sotaro Kimura
【基本を知ろう】クラウド・データレイクを実現する各サービス最新情報(Oracle Cloudウェビナーシリーズ: 2020年10月15日)
by
オラクルエンジニア通信
20111215 12 aws-meister-sqs_sns_sdb-public
by
Amazon Web Services Japan
Power BI をシステムやアプリ開発と一緒に使うなら…~リアルタイムストリーミングの使い方~
by
Yugo Shimizu
【ヒカラボ】RDS for MySQL → Aurora
by
Yuki Kanazawa
Oracle Cloud PaaS & IaaS:2019年8月度サービス情報アップデート
by
オラクルエンジニア通信
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
by
オラクルエンジニア通信
Batch and Stream processing with SQL
by
SATOSHI TAGOMORI
スマートニュースの世界展開を支えるログ解析基盤
by
Takumi Sakamoto
Amazon Web Servicesのご紹介 - 東北クラウド実践カンファレンス2011
by
SORACOM, INC
OracleのCloud Native 戦略/ソリューションの特徴
by
オラクルエンジニア通信
Stream processing on AWS
by
Mitsuharu Hamba
DynamoDB Streamを使ったリアルタイム分析
by
ShinsukeYokota
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
by
GoAzure
Sansanがメッセージング (SQS) でスケーラビリティを手に入れた話
by
Atsushi Kambara
More from オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2023年3月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2022年12月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2022年6月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
by
オラクルエンジニア通信
PPTX
Oracle Cloud Infrastructure:2022年2月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
by
オラクルエンジニア通信
PDF
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
by
オラクルエンジニア通信
PDF
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2023年3月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年12月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年6月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年2月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
by
オラクルエンジニア通信
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
by
オラクルエンジニア通信
Oracle Cloud Infrastructure Streaming Service 技術詳説
1.
Oracle Cloud Infrastructure Streaming
Service 技術詳説 日本オラクル Aug, 2020 Copyright © 2020, Oracle and/or its affiliates 1
2.
大量のデータストリームを処理するフルマネージドな分散メッセージングサービス Streaming (ストリーミング) Copyright ©
2021, Oracle and/or its affiliates. 2 ■ ユースケース ログやイベント、Web/MobileやIoTからのデータストリームを集約、 巨大なシステム内でのサービス間を繋ぐデータハブ ■ 特徴 複雑になりやすいサービス間やコンポーネント間の接続経路を、 Streamingを経由する形にすることでシンプルにすることが可能 Pub/Subモデルの採用により、データ通信を非同期に行い急激なデータ 増加によるシステム負荷の上昇を抑制 Streamingに接続するためのAPIやSDKを提供 • Kafka互換APIを提供 ■ 価格 データ転送(登録/取得)1GBごとに3 データの保持1GB×時間ごとに0.024 ■ 関連するOracle Cloud Service • Events (イベント・サービス) • Oracle Functions (ファンクション) • API Gateway IoT Mobile/Web Activities App Kafka Client Streaming Streaming Events API Gateway Database System Object Storage Functions
3.
Streamingを利用するにあたって理解しておくべき概念とその詳細 • Stream :
Partitionで区切られた、Messageの追加のみ可能なデータストア • Stream Pool : Streamをグループ化したもの • Kafka Connect利用時にはこのStream Poolの設定値が必要(コンソールから確認可能) • Message : Base64エンコードされたデータ(KeyとValueで構成) • 1MBを超えるサイズのMessageは利用できない • Key : Messageをグルーピングするための識別子、同じKeyを持つMessageは同じPartitionに送られる Streamingの概念(Stream, Message, Key, Partition) 3 0 1 2 3 4 5 Partition0 0 1 2 3 4 Partition1 0 1 2 3 4 5 6 Partition2 Stream Messageの追加 (KeyによってPartitionに分配) Stream Pool Copyright © 2020, Oracle and/or its affiliates
4.
Streamingを利用するにあたって理解しておくべき概念とその詳細 • Offset :
Partition内でのMessageの識別子 • Offsetを保存しておくことで、そのOffsetから読み出しを再開できる • 0, 1, 2, 4, 5, 7 のように、必ずしも密にはならないため、「次のOffsetを算出して読み出しを再開」という処理は書け ない • Cursor : SDKを利用する際にStreamからMassageを読み出す際のポインタ • Cursorは作成後5分経つと失効する • 失効するため、Cursorを保存しておいて障害からの回復に使うのは危険 • Partition : Streamの中の区切りであり、これにより並列なMessageの読み出しを実現できる • Partitionの名称は自動的に0,1,2,3,4,...と割り当てられる • Partitionの数量はStreamの作成時に指定(後から追加/削除はできない) Streamingの概念(Offset, Cursor) 4 0 1 2 4 5 7 Partition Stream Offset Cursor Copyright © 2020, Oracle and/or its affiliates
5.
Producer : Messageを書き込む(Publish)役割 •
同じKeyのMessageは、同一のPartitionに配信される • Producerが明示的にどのPartitionに書き込むかを指定することはできない • Keyを指定することで、Partition内での同一Keyでの配信順序を保持できる(first-in/first-out) Consumer : Messageを読み出す(Subscribe)役割 • Messageが作成された順に、Messageを読み出す • 複数のPartitionから読み出す場合は、Messageの順序は保証されない • どこまでMessageを読み出したかはOffsetを用いて判断 ProducerとConsumer – Streamingの周辺コンポーネント 5 0 1 2 0 1 0 Stream Producer 1 PutMessage API GetMessage API Producer 2 Producer 3 Consumer 1 Consumer 2 Consumer 3 Partition0 Partition1 Partition2 Key0 Value Key2 Value Key1 Value Key2 Value Key0 Value Copyright © 2020, Oracle and/or its affiliates
6.
Streamの作成後、APIを利用しメッセージの書き込み(Produce)可能に • Streamの作成はOCIコンソールやAPIで行うことができる Messageの読み出し(Consume)のためには、Cursorを利用する • OffsetのポインターとなるCursorを、Partitionを指定して作成 •
作成したCursorを利用して、PartitionからMessageを読み出し • Cursorは都度生成せず、Message取得時に取得できるNextCursorを利用する その他のProduce/Consume方法 • Kafka互換性APIの利用 • Kafka Connect構成を利用 • Kafka Connectと接続し、Object StorageやAutonomous DBとの接続が可能 MessageのProduceとConsume 6 Copyright © 2020, Oracle and/or its affiliates
7.
• Cursorは5つの種類があり、作成時に対応するパラメータとともに指定 • TRIM_HORIZON:
全てのMessageを取得、パラメータ無し • AT_OFFSET: 特定のOffset以上のMessageを取得、パラメータはOffset • AFTER_OFFSET: 特定のOffsetより大きなMessageを取得、パラメータはOffset • AT_TIME: 指定した時間以降のMessageを取得、パラメータはTime • LATEST: Cursorの初回生成後に追加されたMessageを取得 • Cursor作成時の種類は、どのようにMessageを取得したいかで決める Cursorの詳細 Copyright © 2020, Oracle and/or its affiliates 7 Offset - 0 Timestamp – 00:00 Offset - 1 Timestamp – 00:01 Offset - 2 Timestamp – 00:02 Offset - 3 Timestamp – 00:03 TRIM_HORIZON AT_OFFSET(1) AFTER_OFFSET(1) AT_TIME(00:03) ※Cursor 生成 Offset – 4 Timestamp – 00:04 LATEST
8.
• 複数のConsumerでグループを構成 • GroupNameがGroupの識別子となり、Consumerの識別子はInstanceName •
Group内のConsumerは、それぞれ単一のPartitionから読み出す • 同じGroup内の複数のConsumerが、同一のPartitionからMessageを読み出すことはできない • この仕組みが、並列かつPartitionの重複がないデータの読み出しを可能にする Consumer Groupの概要 8 Consumer 1 Consumer 2 Consumer 3 Grp. A 0 1 2 0 1 0 Stream Partition0 Partition1 Partition2 Consumer 4 Consumer 5 Consumer 6 Grp. B Copyright © 2020, Oracle and/or its affiliates
9.
Consumer Groupを使う際には、GroupCursorを利用する • GroupNameとInstanceNameを指定し、GroupCursorを取得する Consumer
Groupの使い方 9 Consumer 1 Consumer 2 Grp. A 0 1 2 Stream 0 1 0 1 .groupName(“GroupA”) .instanceName(“Consumer1”) .groupName(“GroupA”) .instanceName(“Consumer2”) 取得したGroupCursorをそれぞれ利用 GroupCursorの種類は ・TRIM_HORIZON ・AT_TIME ・LATEST に限定される Copyright © 2020, Oracle and/or its affiliates
10.
• Consumer Group内のアサイン(どのPartitionから読み出すか)は自動的に決まる •
Consumer Groupにはリバランスという仕組みがある • インスタンスが追加された場合には、Consumerは読み出しの負荷を分散する • インスタンスがエラーなどで削除された場合、残ったConsumerで全てのPartitionから読み出すように動作 Consumer Groupの仕組み 10 Consumer 1 Consumer 2 0 1 2 Stream 0 1 2 0 0 1 Consumer3, Consumer4の 順番に追加 リバランスされる 追加後も待機状態に Consumer 1 Consumer 2 3 5 Stream 0 1 2 1 2 2 3 Consumer 3 Consumer 4 ※図はTRIM_HORIZONの場合の動作 3 5 6 Stream 0 1 2 1 2 3 4 6 Consumer 3 Consumer 4 Consumer 1 Consumer 2 3 5 Stream 0 1 2 1 2 2 3 Consumer 3 Consumer 4 Consumer1, Consumer2 を停止 停止したインスタンスが 一度読み出したOffsetを もう一度読み出し、 リバランスされる (詳しくは次スライド) Copyright © 2020, Oracle and/or its affiliates
11.
• Consumer Groupには、Messageを欠落させないための 仕組みであるCommitという概念がある •
Commitを自動で行うCommitOnGet: Message取得時に、 最後に取得したMessageのOffsetをCommitする • Consumer 1が0-99のMessageを取得し、100-199のMessage取得時に 落ちた場合、99がCommitされる • 結果的に引き継ぐConsumer 2は、100からMessageを取得する ため、データロスしないことになる • CommitのタイミングはgetMessagesAPI実行時 • 自動CommitをOffにすることも可能 Consumer GroupにおけるCommitの概念 Copyright © 2020, Oracle and/or its affiliates 11 Consumer 1 Consumer 2 0 … 99 Stream 0 301 … 400 1 0-99のMessageを取得後、 100- 199のMessageを取得しに行く Consumer 1 Consumer 2 0 … 99 100 … 199 Stream 0 1 301 … 400 401 … 500 停止 Partition0の読み出しを Consumer2が引き継ぐ Consumer 1 Consumer 2 0 … 99 100 … 199 200 … 299 Stream 0 301 … 400 401 … 500 501 … 600 1 返却されたNextCursorを利用して引き 続き501以降のMessageを読み出し 99がCommitされているので、100以降の読み 出しから引き継げる(データロスを防げる)
12.
Consumerがエラーなどで停止した際、30秒経つとそのInstanceはConsumer Groupから除外される • プログラムの都合上、Consumerが30秒以上Messageを取得しない可能性がある場合には、 Heartbeat
APIを利用してConsumer Groupから除外されないようにする • 一度停止したConsumerを再開したとしても、自動リバランスにより、停止する前と同様のPartitionか ら読み出すとは限らない Consumer GroupにおけるConsumerのライフサイクル Copyright © 2020, Oracle and/or its affiliates 12 Consumer 1 Consumer 2 0 … 100 Stream 0 301 … 400 1 停止 30秒後 Consumer 3 Consumer 4 HeartbeatAPIの実行 Consumer 2 0 … 100 Stream 0 301 … 400 1 Consumer 3 Consumer 4 HeartbeatAPIの実行 Groupから除外されない Consumer1はGroupか ら除外され、再度 Groupに入ったとして もPartition0から読み 出すわけではない
Editor's Notes
#9
Grpがなぜ必要なのかという話をする - 異なるアプリが同じようにデータを取り扱いやすくするため
#12
KafkaとCommitのタイミング
#13
実際にはGetMessageAPIが使われることが多い
Download