Apache Pulsarとは & デモ

3.3K Views

July 04, 23

スライド概要

Apache Pulsar Meetup Japan #5 での発表資料です。
イベントページ:https://japan-pulsar-user-group.connpass.com/event/283299/
Pulsarの歴史や特徴を紹介しています。

profile-image

2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Apache Pulsarとは & デモ ヤフー株式会社 システム統括本部 酒井 宏⾏ ⼩国 英明 © Yahoo Japan

2.

Apache Pulsarとは © Yahoo Japan

3.

⾃⼰紹介 酒井 宏⾏ 経歴︓ - 2007/04 新卒⼊社 - 2007/06 Yahoo! JAPAN ID全般(ID登録、登録情報、ID連携など) - 2015/07 ヤフオク︕のBEシステム - 2016/10 「Apache Pulsar」を使った社内向けメッセージングプラットフォーム 最近︓ - ⼦育て - スポーツ観戦 © Yahoo Japan 3

4.

Apache Pulsarとは Apache Pulsarについて • • • • • • • Pub-Sub⽅式のメッセージングプラットフォーム Yahoo! Inc.が開発 ⾔語はJava 2016/09 OSSとして公開 2018/05 v2.0リリース 2018/09 Apache Top Level Projectに昇格 2023/05 v3.0リリース © Yahoo Japan 4

5.

Apache Pulsarとは Apache Pulsarについて 社内では、 • 2017年から社内向けプラットフォームとして提供 • 1クラスタで ü 400テナント ü Rate out: 1000万msg/s ü Throughput out: 40Gbps © Yahoo Japan 5

6.

Apache Pulsarとは Apache Pulsarについて ② ① ③ ・・・ 送信側システム 受信側システム メッセージングプラットフォームの利⽤イメージ 処理の流れ ① 送信側システムがメッセージをPulsarに送信 ② Pulsar内のキューにメッセージが保存されていく ③ 受信側システムがPulsarからメッセージを取得 システム間のメッセージのやり取りに利⽤される ü ⾮同期でやり取りできる/システム同⼠が疎結合 メッセージの例 ü 通知情報、受信側のシステムに処理して欲しいデータ、ログなど © Yahoo Japan 6

7.

Apache Pulsarとは Apache Pulsarについて GitHub • Stars:12.7K、Contributor: 619 https://pulsar.apache.org/blog/2022/05/11/apache-pulsar-community-welcomes-500th-contributor/ © Yahoo Japan 7

8.

Apache Pulsarとは ユーザ • • • • • • • • • DataStax NTT Software Innovation Center StreamNative China Mobile Comcast Splunk Tencent Yahoo! JAPAN … 60社以上が利⽤(または貢献)している https://pulsar.apache.org/powered-by/ © Yahoo Japan 8

9.

Apache Pulsarとは 特徴 • • • • • ⾼速 スケーラブル マルチテナント ü 複数サービス/利⽤者でPulsarクラスタを共同で利⽤可能 ü Java, Go, C++, Python, Node.js, C#, (REST, WebSocket) ジオレプリケーション 公式クライアントライブラリの充実 © Yahoo Japan 9

10.

Apache Pulsarとは 構成 Producer Consumer • Broker Broker Broker 3つのコンポーネント ü Broker - メッセージの送受信を仲介 ü Bookie - ストレージ ü Zookeeper - メタデータ/構成情報 ※ 各コンポーネント独⽴してスケール可能 Configuration Store (Global ZK) Metadata Store (local ZK) Bookie 1 Bookie 2 ・・・ • Pulsar Cluster クライアント ü Producer – メッセージを送信 ü Consumer – メッセージを受信 ※ZKはZookeeperの略 © Yahoo Japan 10

11.

Apache Pulsarとは 複数クラスタでの構成 Producer Consumer Consumer Broker Broker Broker Broker Broker Broker Metadata Store (local ZK) Metadata Store (local ZK) Configuration Store (Global ZK) Bookie 1 Bookie 2 ・・・ Bookie 1 Pulsar Cluster Bookie 2 ・・・ Pulsar Cluster © Yahoo Japan 11

12.

Apache Pulsarとは ジオレプリケーション Producer Consumer Consumer Broker Broker Broker Broker Broker Broker Metadata Store (local ZK) Metadata Store (local ZK) Configuration Store (Global ZK) Bookie 1 Bookie 2 ・・・ Bookie 1 Pulsar Cluster Bookie 2 ・・・ Pulsar Cluster 他クラスタにメッセージを複製する機能 © Yahoo Japan 12

13.

Apache Pulsarとは 機能 • • • • • • • • • • • • • • • 認証・認可 メッセージの圧縮 メッセージの暗号化 メッセージの重複排除 subscription type Partitioned topics Batch messages Dead Letter Topic Delayed Message Delivery Replicated subscriptions Topic Compaction Publish/Dispatch Rate Limit Kafka-on-Pulsar Cluster-level failover Tiered Storage • • • • • • • © Yahoo Japan Pulsar Schema Pulsar transactions Pulsar Functions Pulsar IO Pulsar SQL Proxy support with SNI routing … 13

14.

Apache Pulsarとは まとめ • • • • • Yahoo! Inc. で開発されたPub-Sub⽅式のメッセージングプラットフォーム ⾼速/スケーラブル/マルチテナント 公式クライアントライブラリが充実 機能が豊富 2023年現在もコミュニティは活発 ドキュメント : https://pulsar.apache.org GitHub : https://github.com/apache/pulsar Slack : https://apache-pulsar.slack.com メール : [email protected] © Yahoo Japan 14

15.

公開 デモ © Yahoo Japan

16.

⾃⼰紹介 ⼩国英明 経歴 •2021/04 ヤフー新卒⼊社 •2021/10 社内向けメッセージングプラットフォーム 趣味 •将棋 •CTF •野球観戦 © Yahoo Japan 16

17.

アジェンダ 1. デモの環境 2. Exclusive Subscription 3. Geo-replication © Yahoo Japan 17

18.

デモの環境 •Dockerで構築 •GitHubのURL: h3ps://github.com/izumo27/pulsar-docker © Yahoo Japan 18

19.

デモのクラスタ構成 •Broker, Bookie, ZK (ZooKeeper) が各クラスタ1台 •Global ZKが1台 •Clientはpulsar-client (CLI) を⽤いる(次ページ) • 本格的に使う場合はJava, Go, C++などのライブラリがある Broker Broker Configuration Store (Global ZK) Metadata Store (local ZK) Metadata Store (local ZK) Bookie Bookie west Cluster east Cluster © Yahoo Japan 19

20.

pulsar-client •Produce/ConsumeなどができるCLI •今回は接続先クラスタを設定済み サブスクリプション トピック © Yahoo Japan 20

21.

トピック • • メッセージを送受信するチャンネル トピックを介してメッセージをやりとりする Producer Consumer トピックA Broker Pulsar Cluster © Yahoo Japan 21

22.

サブスクリプション • • ConsumerがTopicを購読する⽅式 サブスクリプションごとにメッセージが配信される Producer Consumer sub1 トピックA Broker Pulsar Cluster © Yahoo Japan 22

23.

Exclusive Subscription •⼀つのConsumerのみ接続できる Producer Consumer トピックA sub ❌ Consumer Broker Pulsar Cluster © Yahoo Japan 23

24.

Geo-replication (1/3) •他クラスタにメッセージを複製する機能 •eastに送ったメッセージをwestでも受信できる Consumer Producer Consumer Broker Broker Configuration Store (Global ZK) Metadata Store (local ZK) Metadata Store (local ZK) Bookie Bookie west Cluster east Cluster © Yahoo Japan 24

25.

Geo-replication (2/3) •平常時はeastのみを使⽤ •eastがダウンした場合はwestに切り替え Producer Consumer Broker Broker Configuration Store (Global ZK) Metadata Store (local ZK) Metadata Store (local ZK) Bookie Bookie west Cluster east Cluster © Yahoo Japan 25

26.

Geo-replication (3/3) •平常時はeastのみを使⽤ •eastがダウンした場合はwestに切り替え Producer Consumer Broker ❌ ❌ Broker Configuration Store (Global ZK) Metadata Store (local ZK) Metadata Store (local ZK) Bookie Bookie west Cluster east Cluster © Yahoo Japan 26

27.

公開 © Yahoo Japan