Yahooは、Pub-subメッセージングシステムであるPulsarを開発し、オープンソースにしました。その現在のApacheのインキュベーションプロジェクト。 Kafkaも同じ目的で使用されるため。パルサー上のKafkaの大きなプラスとマイナスのポイントを知りたい。
私は最近両方で少し遊んだが、ここに集めたものがある。
ニュートラル:
プロパルサー:
Pro Kafka:
また読む:
Apache Kafkaはより成熟しており(以前から使用されていました)、より高いレベルのAPI(つまりKStreams)を備えています。成熟していますが、流動性と柔軟性が制限されています。つまり、githubで最大500のオープンPR
Apache Pulsarは、Apache Kafkaの設計決定を深く研究し、改良された設計と一連のエキサイティングな機能、つまりnamespacingトピックのアイデアを組み込み、ACLまたはクォータを許可しましたより良いmulti-tenancyのサポートを提供するために、名前空間レベルで適用されることは非常に奥深い良い考えのようです。 Pulsarの他のエキサイティングな機能は、geo-replicationと、キューイングとストリーミングの統合です。
トピックが永続的で、適度なレイテンシと高いスループットを備えたストリーミングプラットフォームが必要でした。最近、私たちはKafkaまたはPulsarのどちらを使用すべきかを評価し、@ nhaとは異なり、Apache Kafkaを支持しています。調査結果は次のとおりです。
パルサー-長所
パルサー-短所
カフカ-長所
カフカ-短所
トップレベルの地位を獲得するためのApache Software Foundationの最新プロジェクトであるPulsarは、別のASFプロジェクトであるKafkaと多くの比較を行っています。
Pulsarは、汎用ハードウェアで実行される非常にスケーラブルで低遅延のメッセージングプラットフォームです。トピックに対する単純なpub-subおよびキューセマンティクス、軽量な計算フレームワーク、サブスクライバーの自動カーソル管理、およびデータセンター間のレプリケーションを提供します。
一方、600人以上のユーザーを調査した2018 Apache Kafkaレポートでは、データパイプラインとメッセージングがテクノロジーの上位2つの用途であることがわかりました。マイクロサービスアーキテクチャの台頭により、使用が拡大していることがわかりました。
「2つのシステムの使用例には大きな重複がありますが、元の設計は非常に異なっていました」と、高速データプラットフォームを提供するスタートアップであるStreamlioを設立して以来、クリエーターの1人であるMatteo Merliは述べました。
Yahooは、複数のメッセージングシステムとそれらを展開する複数のチームに関する問題の解決策として、単一のマルチテナントシステムとしてPulsarを作成しました。
2016年にオープンソースとしてリリースされ、2017年6月にASFインキュベーターに入りました。約4年間、YahooのアプリケーションMail、Finance、Sports、Gemini AdsおよびSherpa、Yahooの分散Key-Valueサービスで使用されています。
ブログの投稿で、共同設立者のSijie Guoは、Pulsar対Kafkaを次のようにまとめています。
「Apache Pulsarは、高性能ストリーミング(Apache Kafkaが追求する)と柔軟な従来のキューイング(RabbitMQが追求する)を統合したメッセージングモデルとAPIに組み合わせています。 Pulsarは、統一されたAPIを使用して、ストリーミングとキューイングの両方に対して同じ高性能で1つのシステムを提供します。
Merli氏:「ストリーミングとキューイングには違いがあります。どちらか一方が必要なユースケースはたくさんありますが、ほとんどの人は異なるユースケースで両方を必要とします。」
2層アーキテクチャ2層設計は、Pulsarの鍵です、とMerliは言いました。メッセージを受信および配信するブローカーのステートレスレイヤーと、低レイテンシの耐久性のあるストレージを提供するブッキーと呼ばれるApache BookKeeperストレージノードのセットを備えたステートフル永続レイヤーがあります。
パルサーは、強力なデータ保証を持つという考えに基づいて構築されたとメルリ氏は語った。 Kafkaはそうではありませんでしたが、共有消費のために設計されました。また、Pulsarを使用すると、ユーザーはすべてのサブスクリプションがメッセージを消費した後でも、メッセージの保存期間を構成できます。
階層化されたアーキテクチャとセグメント中心のストレージには、主な利点があります。
ブローカーまたはストレージレイヤーを個別にスケーリングできます。ブローカーはステートレスであるため、トピックを他のブローカーにすばやく移動できます。これにより、ブローカー間でトラフィックのバランスをとる効率的な方法が開かれます。同じパーティションに複数のコンシューマーを配置でき、必要な数だけ追加できます。データはローカルに保存されないため、容量を拡張するときにパーティションデータをコピーする必要がなくなり、再バランスは不要です。パーティション化されたトピックが作成されると、Pulsarは消費者と生産者にとらわれない方法でデータを自動的にパーティション化します。
ブローカーは複数のBookKeeperノードにメッセージデータを送信します。複数のBookKeeperノードは、データを先行書き込みログに書き込み、コピーをメモリに保持します。ノードが確認応答を送信する前に、ログは安定したストレージに強制的に書き込まれます。これにより、電源が切れても保持されます。トピックパーティションはBookKeeperクラスター全体の合計容量まで拡張でき、ノードを追加するだけでクラスターを拡張できます。
インキュベーターに入ってから、Pulsarを使いやすくすることに重点が置かれています。
Pulsarのバージョン2.0が6月にリリースされました。これには、ユーザーがJavaまたはPythonで処理機能を記述できるようにするPulsar Functionsと呼ばれる「ストリームネイティブ」処理機能が含まれます。パイプライン。インタラクティブなSQLクエリ機能を備えたバージョン2.2が間もなくリリースされます。
Pulsarは、Java、C++、Python、WebSocketなどの複数の言語とプロトコルのバインディング、およびKafka互換のAPIを提供します。
参考資料:Apache Pulsar:それはKAFKAキラーですか?
Apache Pulsar:それはKAFKAキラーですか?Bhagwan s。Soni著
KafkaよりもApache Pulsarを選択する理由は何ですか?
Apache Pulsarは、PubSubのエンタープライズエディションで、元々はYahooによって開発され、現在はApache Software Foundationによってサポートされています。 Apache Pulsarは、過去3年以上にわたって実稼働システムで稼働しており、安定性を証明しています。
Apache Pulsarは、Kafkaが提供するほぼすべての機能をカバーしていますが、名前は異なる場合があります。パルサーには多くの機能がありますが、Kafkaで区別するのに役立ついくつかの機能を強調したいと思います-
1} Apache Pulsarは、トピックに関する3種類のサブスクリプションを提供します。特定の時点で、データを消費するのは1人だけです。
2}各名前空間には1つ以上のトピックを含めることができます
3} Multitanencyの強力なサポート
4}複数のクラスターでのデータ複製
5}データ損失に対する強力なメッセージ耐久性サポート