最近、私は Pulsar と Kafka の比較を調べています。ちょっと検索してみると、これら 2 つの最も有名なオープン ソース メッセージング システム間で進行中の「戦争」がわかります。
画像はPexelsより Kafka ユーザーとして、私は Kafka のいくつかの問題について本当に困惑していましたが、Pulsar は目を見張るものがあり、とても興奮しました。それで最終的に、私は時間をかけて背景情報を入手し、多くの調査を行うことができました。 この記事では、Pulsar の利点を強調し、Pulsar が Kafka よりも優れている理由を説明します。さあ始めましょう! Kafka の基礎 Kafka はメッセージング システムの王様です。これは 2011 年に LinkedIn によって作成され、Confluent のサポートにより広く配布されるようになりました。 Confluent は、スキーマ進化のための Schema Registry、他のデータ ソースからの簡単なストリーミングのための Kafka Connect など、オープン ソース コミュニティに多くの新機能とアドオンをリリースしました。 データベースから Kafka、分散ストリーム処理用の Kafka Streams、最近では Kafka トピックに対する SQL のようなクエリ用の KSQL など。 Kafka は高速で、インストールが簡単で、非常に人気があり、幅広いユースケースに使用できます。 Apache Kafka は開発者の観点からは常に使いやすいものでしたが、運用に関しては混乱を招いていました。 それでは、Kafka の問題点をいくつか見てみましょう。 カフカデモ[2] Kakfa の多くの問題点は次のとおりです。
ご覧のとおり、質問のほとんどは運用面に関するものです。 Kafka はインストールが比較的簡単ですが、管理と調整が難しい場合があります。さらに、本来備わっているべき柔軟性と弾力性が欠けています。 パルサーの基礎 Pulsar は Yahoo! によって作成されました。 2013 年に開発され、2016 年に Apache Foundation に寄贈されました。現在、Pulsar は Apache Software Foundation のトップレベル プロジェクトとなっています。 すでに Yahoo!、Verizon、Twitter などの企業で数万件のメッセージを処理するために実稼働で使用されています。運用コストが低く、柔軟性が高いという特徴があります。 Pulsar は、Kafka の課題のほとんどを解決し、スケーリングを容易にすることを目的としています。 Pulsar は非常に柔軟性が高く、Kafka のような分散ログ アプリケーション シナリオだけでなく、RabbitMQ のような純粋なメッセージング システム シナリオにも適用できます。 複数のタイプのサブスクリプション、複数の配信保証、保持ポリシー、スキーマの進化を処理する方法など、さまざまな機能をサポートしています。 パルサーアーキテクチャ図[4] Pulsar の特徴は次のとおりです。
ストレージとメッセージングを分離することで、クラスターのスケーリング、再バランス調整、保守に関する多くの問題が解決されます。また、信頼性も向上し、データ損失が事実上不可能になります。
パルサー機能一覧[5] Pulsarを使い始める Pulsar を使い始めるのはとても簡単です。使用の前提条件は、JDK をインストールすることです。 ① Pulsar をダウンロードして解凍します (注: Apache Pulsar の最新バージョンは 2.7.0 です)。
② コネクタをダウンロードする(オプション):
③narファイルをダウンロードしたら、Pulsarディレクトリ内のConnectorsディレクトリにファイルをコピーします。 ④パルサーを起動!
Pulsar は、クラスターと対話するために使用できる Pulsar-Client と呼ばれる CLI ツールを提供します。 制作ニュース:
消費メッセージ:
Akka ストリームの例 クライアントの例として、Akka 上で Pulsar4s を使用します。 まず、データ ストリームを消費するためのソースを作成する必要があります。必要なのは、要求に応じてコンシューマーを作成し、メッセージ ID を検索する関数だけです。
次に、ConsumerFn 関数を渡してソースを作成します。
Akka ソースの具体化された値は Control のインスタンスであり、メッセージの消費を停止するために使用できる "close" メソッドを提供します。これで、通常どおり Akka Streams を使用してデータを処理できます。 受信機を作成するには:
完全な例はPulsar4s[6]から引用されています。
パルサー関数の例 Pulsar 関数は、1 つ以上のトピックからのメッセージを処理し、変換して、結果を別のトピックに出力します。 パルサー機能[7] 関数を記述するための 2 つのインターフェースから選択できます。
言語ネイティブ インターフェイスを使用してメッセージを変換する簡単な関数を記述するだけです。
Python で記述されたこの単純な関数は、渡された文字列に感嘆符を追加し、結果の文字列をトピックに公開するだけです。 SDK を使用するには依存関係をインポートする必要があります。たとえば、Go では次のように記述できます。
サーバーレス関数を公開してクラスターにデプロイしたい場合は、Pulsar-Admin CL を使用できます。 Python を使用する場合は、次のように記述できます。
オプションは次のとおりです: パルサーの利点 Kafka と比較した Pulsar の主な利点を見てみましょう。
パルサーの欠点 パルサーは完璧ではありません。 Pulsar にもいくつか問題があります:
しかし、上記の状況は急速に改善しており、Pulsar は徐々に多くの企業や組織で利用されるようになっています。 Apache Pulsar の商用サポート会社 StreamNative も StreamNative Cloud を立ち上げました。 Apache Pulsar は急速に成長しており、私たちは皆、刺激的な変化を目にすることができます。 Confluent は Pulsar と Kafka を比較するブログを公開していますが、これらの質問には偏りがある可能性があることに注意してください。 パルサーの使用シナリオ Pulsar は幅広いシナリオで使用できます。
Pulsar を検討すべきなのはいつですか?
クラウドの場合は、必ずクラウドベースのソリューションを検討してください。クラウド プロバイダーには、特定のシナリオをカバーするさまざまなサービスがあります。 たとえば、キュー メッセージングの場合、クラウド プロバイダーは Google pub/sub などの多くのサービスを提供しています。分散ログには、Confluent Cloud または AWS Kinesis があります。 StreamNative は Pulsar をベースにしたクラウド サービスも提供しています。 クラウドプロバイダーは非常に優れたセキュリティも提供します。 Pulsar の利点は、1 つのプラットフォームで多くの機能を提供していることです。 チームによっては、これをマイクロサービスのメッセージング システムとして使用する場合もあれば、データ処理用の分散ログとして使用する場合もあります。 結論は 私は Kafka の大ファンですが、Pulsar にとても興味を持っているのには理由があります。それは、競争がイノベーションを推進するからです。 Kafka は成熟した、回復力のある、実戦でテストされた製品であり、世界中で大成功を収めており、ほとんどの企業にとって Kafka なしでの事業は考えられないほどです。 しかし、私は Kafka が自身の成功の犠牲者になるだろうと考えています。Kafka の急成長により、多くの大企業をサポートする必要性から機能開発が遅くなり、ZooKeeper への依存の排除などの重要な機能に時間がかかりすぎて、Pulsar のようなツールが繁栄する余地が生まれています。 パルサーはまだ若いですが、勢いは抜群です。 Pulsar を組織に組み込む前に、分析、ベンチマーク、調査、POC を実施する必要があります。 まずは小規模に開始し、Kafka を Pulsar に移行する前に概念実証を実施し、完全な移行を決定する前に影響を評価します。 参考リンク:
https://itnext.io/pulsar-advantages-over-kafka-7e0c2affe2d6
https://talks.rmoff.net/pZC6Za/slides
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=27846330
https://pulsar.apache.org/docs/en/concepts-architecture-overview/
https://pulsar.apache.org/
https://github.com/sksamuel/pulsar4s/blob/master/pulsar4s-akka-streams/src/test/scala/com/sksamuel/pulsar4s/akka/streams/Example.scala
https://pulsar.apache.org/docs/en/functions-overview/
https://medium.com/swlh/performance-comparison-between-apache-pulsar-and-kafka-latency-79fb0367f407 著者: Dancing with the Numbers 編集者:タオ・ジアロン 出典: Java Advanced Architecture から転載。オリジナルの中国語版は、ルイス・フェアウェザーの論文「パルサーのカフカに対する優位性」[1]からWenshuqiwuが翻訳したものです。この記事は転載時に修正されています。 |
<<: クラウドコンピューティング市場はどこへ向かうのでしょうか?
>>: TiDBの分散トランザクションモデルについてお話しましょう
クラウド コンピューティングは、クラウド コンピューティングとは何かという最初の議論から、クラウド ...
最近、当社のウェブサイトに問題が発生しています。落ち着いてウェブサイトのデータ分析を行ったところ、ユ...
ある夜、Kubernetes クラスターが拡張に失敗し続け、すべてのノードがクラスターに正常に参加で...
lcayun/Leicaクラウドサーバーメーカーは、国内認定のエンタープライズサーバーマーチャントで...
タオバオの有料プロモーションにおけるダイヤモンドブース、直通列車などのプロモーション料金は年々増加し...
いつものことですが、特に安全性に関しては、人々は自分の失敗から学ぶよりも他人から学ぶことを好みます。...
2017年10月、テンセントは一部のユーザーを対象に、Sogou SearchをWeChatに統合す...
9月26日、Googleはハミングバードアルゴリズムを発表しました。これは、検索語句の90%に影響を...
colossuscloud は比較的新しいブランドで、設立されてからまだ 1 年しか経っていないため...
raksmartはどうですか? raksmart サーバーはどうですか? Raksmart のロサン...
「イカゲーム」が巻き起こした世界的なサスペンス熱はまだ完全には冷めていない。国内初の無限流映画・テレ...
最近、IEEE が主催する高性能コンピューティング アーキテクチャに関する国際シンポジウム (HPC...
4月24日、Googleの優秀なエンジニアであるマット・カッツ氏は、Googleウェブマスターブログ...
[[406961]]クラウド ネイティブは、クラウド コンピューティングの新しいテクノロジー システ...
かつての恋人同士だったSogouと360は、今では敵同士となっている。 11月5日、一部のネットユー...