web-dev-qa-db-ja.com

Google PUB / SUBとKafkaを評価していますか?

私はkafka=にあまり取り組んでいませんが、GCEでデータパイプラインを構築したいと考えていました。したがって、Kafka vs PUB/Sub。 KafkaとPub/subの両方でメッセージの一貫性、メッセージの可用性、メッセージの信頼性がどのように維持されるか

ありがとう

44
Naresh

Googleが管理しているGoogle Pub/SubとKafka=オープンソースであることに加えて、Google Pub/Subはメッセージキュー(Rabbit MQなど)であり、as Kafkaはストリーミングログです。Pubsubを使用してメッセージを「再読み込み」または「リプレイ」することはできません(編集-2019年2月の時点で、特定の時間までメッセージをリプレイして逆シークできますタイムスタンプ、以下のコメントごと)

Google Pub/Subを使用すると、サブスクリプションからメッセージが読み取られてACKが送信されると、メッセージは消えます。さまざまな読者が読むメッセージのコピーを増やすには、そのトピックの「サブスクリプション」を作成してトピックを「ファンアウト」します。各サブスクリプションには、トピックに入るすべての完全なコピーがあります。ただし、GoogleはPub/Subの使用量を、そこから読み取ったデータの量で請求するため、コストも増加します。

Kafkaでは、保持期間(デフォルトでは7日間だと思います)を設定し、メッセージは、消費者の数に関係なくKafkaのままになります。新しい消費者(別名サブスクライバー)を追加できます。 、いつでもトピックの先頭から消費し始めます。また、保持期間を無限に設定して、基本的にKafkaを不変データストアとして使用できます。ここで説明します: http://stackoverflow.com/a/22597637/304262

Amazon AWS Kinesisは、Kafkaの管理バージョンです。一方、Google PubsubはRabbit MQの管理バージョンであると考えています。キューイング)。

59
gunit

Kafka対Cloud Pub/Subの大きな違いは、Cloud Pub/Subが完全に管理されていることです。マシン、クラスターのセットアップ、パラメーターの微調整などを心配する必要はありません。これは、多くのDevOps作業が自動的に処理されることを意味し、これは特にスケーリングが必要な場合に重要です。

5
Mete Atamel