[フレーム]
BT

InfoQ Software Architects' Newsletter

A monthly overview of things you need to know as an architect or aspiring architect.

View an example

We protect your privacy.

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

InfoQのすべての体験をアンロックして、そのメリットを最大限に活用しましょう

ログインして、InfoQのすべての体験をアンロックしましょう!お気に入りの著者やトピックの最新情報を入手し、コンテンツと交流し、限定リソースをダウンロードできます。

ログイン
または

アカウントをお持ちでない方

登録
  • あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。
  • 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。
  • 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

Topics

地域を選ぶ

InfoQ ホームページ ニュース PinterestがKafka、Flink、MemQ用の本番環境に対応したPubSub Javaクライアントをオープンソース化

PinterestがKafka、Flink、MemQ用の本番環境に対応したPubSub Javaクライアントをオープンソース化

2024年2月27日 読了時間 3 分

作者:

翻訳者

原文リンク(2024年02月11日)

Pinterestは、汎用PubSubクライアントライブラリであるPSCをオープンソース化した。PSCは1年半前から実際に幅広く利用されている。このライブラリは、開発者の速度を向上させ、それを使用するサービスのスケーラビリティと安定性を高めることで、エンジニアリングチームを支援している。Javaアプリケーションの90%以上が、最小限の変更でPSCに移行している。

Pinterestは、Apache KafkaApache FlinkMemQなど、プラットフォーム全体でメッセージング・インフラストラクチャを使用している。Pinterestのソフトウェア・エンジニアであるJeff Xiang氏は、異なるメッセージング・バックエンドを使用することから生じるいくつかの課題についてまとめている。

長年の運用経験から、プラットフォームチームが所有し保守する統一されたPubSubインターフェイスがあれば、アプリケーション開発者はクライアントとサーバーの接続問題のデバッグに貴重な時間を費やすことなく、アプリケーションのロジックに集中できるため、ユーザーやビジネスにとって大きなメリットがあることが分かりました。

同社は、統一された抽象化とネイティブクライアントライブラリと比較して強化された機能を提供する汎用PubSubクライアントライブラリを作成した。PSCは、自動化されたサービス検出、最適化された設定、自動化されたエラー処理、インターセプター、メトリクス、および最適化された設定をサポートする。ライブラリは2つの主要なインターフェースを提供している。PSCプロデューサーとPSCコンシューマーで、それぞれ1つまたは複数のバックエンドのプロデューサーまたはコンシューマーを管理できる。

PubSubクライアントのアーキテクチャ(出典:PSC GitHubリポジトリ)

ライブラリは、メッセージングトピックの自動サービス検出をサポートするためにリソース名(RNs)を導入した。トピック参照では、ブローカー接続の確立に必要なすべての情報を含む完全修飾RN文字列を使用する。例えば、secure:/rn:kafka:prod:aws_us-west-1:shopping:transaction は、クライアントが接続する必要のあるトピック、クラスタ、リージョン、バックエンド(Kafka)を指定する。このアプローチにより、無効なホスト/ポートの組み合わせ、SSL設定オプションと認証情報、不正なリージョンなどを持つネイティブクライアントを使用した偶発的な構成ミスを防止する。

エンジニアは、Flinkベースのワークロードのシームレスな移行を可能にするFlink-PSCコネクタを開発した。主な移行課題は、新しく移行したジョブがFlinkチェックポイントファイルからジョブ状態を回復できるようにすることだった。

PubSubクライアントはネイティブクライアントと100%同等の機能とAPIを備えているため、Pinterestはコードベースの変更を最小限に抑えながら、Javaアプリケーションの90%以上をPSCに移行できた。移行作業には通常、インポートや参照の置き換え、新しいリソース名(RN)文字列を含むPSCのものを活用したクライアント設定の更新などが含まれる。

PSCのロールアウトがFlinkのジョブ再起動に与える影響(出典:Pinterest Engineering Blog)

Pinterestは、期限切れのSSL証明書の検出と更新など、より改善可能なエラーに対する自動エラー処理など、PSCにさらなる機能強化を導入する予定だ。同社はまた、PythonのロードマップにあるC++バージョンに取り組んでいる。最後に、プラットフォーム・チームは、インフラ・コストをプロジェクトやチームに帰属させることができるよう、クライアントのチャージバックをサポートするクライアント追跡機能の活用を検討している。

LinkedInの投稿に対して、Aaron Lee氏は次のようにコメントしている。

よくやった!このようなインフラの中核となる部分について、うまく設計された統一クライアントがどれほど下流に影響を与えられるか注目したい。他の大規模なエンジニアリングチームも、活用することで多くのメリットを得られると思います。

作者について

Rafal Gancarz

もっと見るより少なく

この記事に星をつける

おすすめ度
スタイル
  • 関連記事

    • 関連スポンサーコンテンツ

特集コンテンツ一覧

InfoQ ニュースレター

毎週火曜日に前週のまとめコンテンツをお送りいたします。(日本語版は不定期リリース)25万人のシニアな開発者コミュニティーにぜひご参加ください。 サンプルを見る

We protect your privacy.

BT

AltStyle によって変換されたページ (->オリジナル) /