みなさんこんにちは、私は仙宇です 最近かなり忙しくて、1週間近く記事を更新していませんでした。もう更新しないと、数少ないファンが離れてしまいますT﹏T 最近たまたまKafkaを勉強していたので、Kafka関連の記事を書くことにしました(記事に間違いがあれば指摘してください) 皆さんの中には Kafka を初めて知る人もいるかもしれないので、Kafka とは何かを簡単に紹介したいと思います。 Kafka の紹介Kafka は、従来のメッセージ キュー (RaabitMQ、RocketMQ など) のように非同期処理、トラフィック ピークの排除、サービス分離をサポートするだけでなく、高スループットの分散メッセージング システムでもあります。 写真 バッチ処理のためにメッセージをディスクに保存することも可能です。さらに、Kafka は分散システムとして設計されているため、スループットと可用性が大幅に向上します。 Kafka ロール
プロデューサー: パブリッシャーとも呼ばれ、メッセージの作成を担当します コンシューマー: サブスクライバーとも呼ばれ、メッセージの消費(読み取り)を担当します。
トピックとパーティショントピックはメッセージが公開される場所です。コンシューマーはトピックをサブスクライブすることで対応するメッセージを消費します。 スループットを向上させ、トピックの負荷分散を実現するために、Kafka ではトピックの下にパーティションの概念が導入されています。各トピックは複数のパーティションに分割できます。 パーティションを使用すると、メッセージをトピックの下に水平に分割して保存できます。各パーティションは順序付けられた不変のメッセージ キューです。コンシューマーは同じトピックからのメッセージを並行して消費できます。 PS: トピックは論理的な概念であり、メッセージは実際にはパーティションに保存されます。 写真
ログ 各トピックごとに、Kafkaはパーティションログを維持します。 写真 各パーティションは、メッセージを継続的に追加できる、順序付けられた不変のメッセージ キューです。メッセージには、オフセットと呼ばれるパーティション内の一意のシーケンス番号が割り当てられます。
Kafka はすべてのパーティションにメッセージを保持し、メッセージを自動的に削除しません。メッセージ保持ポリシーは、Kafka 構成パラメータによって制御されます。メッセージは、一定期間が経過するか、または一定のサイズに達すると期限切れになることがあります。期限切れのメッセージは削除されます。 コンシューマーは、パーティション内の位置を識別するために、Kafka に独自のオフセットのみを保持します。通常、コンシューマーがメッセージを消費すると、そのオフセットは直線的に増加し、これらのメッセージが消費されたことを示します。 コンシューマーは、オフセットを古い値にリセットして、メッセージの読み取りを再開することを選択できます。 各コンシューマー インスタンスは 1 つのパーティションを担当します。 Kafka は、トピック内の異なるパーティションの順序ではなく、パーティション内のレコードの順序を保証するだけです。 Kafka クラスターKafka はクラスターの概念を備えた分散アーキテクチャです。 Kafka のインスタンスはブローカーと呼ばれ、プロデューサーからメッセージを受信してディスクに保存します。コンシューマーはブローカーに接続してメッセージを消費します。 複数のブローカーが Kafka クラスターを形成します。クラスター内のブローカーはクラスター コントローラーとなり、ブローカーへのパーティションの割り当て、ブローカーの監視など、Kafka クラスター全体の管理を担当します。 パーティションは複数のレプリカに複製され、異なるブローカーに均等に分散されます。そのうちの 1 つがリーダーで、その他はフォロワーです。
通常、各パーティションにはリーダーと 0 個以上のフォロワーが存在します。この方法では、ブローカーに障害が発生しても、他のブローカーのレプリカが引き続きサービスを提供できます。 写真 では、すべてのレプリカを異なるブローカーに均等に分散するにはどうすればよいでしょうか? レプリカを割り当てるアルゴリズムは次のとおりです。
Kafka はどのようにしてデータ同期を実現するのでしょうか?まず、KafkaのISR(In-Sync Replicas)メカニズムを見てみましょう。 各リーダーには少なくとも 1 つのフォロワーが存在するため、Kafka によって動的に維持される同期レプリカのセットである ISR が存在します。 ISR 内のすべてのフォロワーはリーダーと同期され、リーダーも ISR リストに含まれます。リーダー選出に参加できるのは、自身の ISR リスト内のレプリカのみです。 プロデューサーがデータを書き込むと、リーダーがデータを更新します。フォロワーは、リーダーがデータを更新し、データを同期したことをどのようにして知るのでしょうか? フォロワーは、フェッチ要求をリーダーに定期的に送信してデータを同期します。これはフェッチャー スレッドの役割です。 レプリカがフォロワーとして選出されると、レプリカのフェッチャー スレッドが開始されます。フォロワーは、接続を維持するためにリーダーに定期的にハートビート要求を送信し、最新のデータを取得するためにフェッチ要求を送信します。 フォロワーは、自身の LEO (ログ終了オフセット) がリーダーの LEO と異なることを検出した場合、リーダーのデータとの一貫性を確保するために、自身のログをリーダーの対応する位置に同期するためのデータ同期要求をトリガーします。 フォロワーがフェッチ要求を送信しないか、指定された時間内にリーダーのLEOに追いつかない場合(設定フィールドはreplica.lag.time.max.ms)、ISRから削除されます。 最後にまとめます。
|
<<: GenAI はクラウド コンピューティングの ROI を向上できますか?
>>: ガートナー: クラウドネイティブテクノロジーを導入してデジタル変革を加速する方法
中国情報通信研究院が主催し、中国通信標準化協会が後援する「OSCARクラウドコンピューティングオープ...
ASO最適化とは、アプリケーション市場のキーワードランキング検索最適化を指します。アプリケーション市...
皆さんと私の経験と洞察を共有するために、私は再びadmin5に戻ってきました。私が初めて記事を投稿し...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス数年前、インターネット上...
10月19日、2021年雲斉会議が杭州で開幕した。アリババグループの張勇会長兼最高経営責任者(CEO...
コアヒント: .リンク アーキテクチャは Web サイト計画の重要な部分であり、Web サイトが検索...
私の知る限り、ウェブサイトを期待通りの効果に最適化したり、期待を上回る成果を出したりできる SEO ...
まず、私の経歴についてお話しします。大した経歴ではありません。私は SEO 実践者であり、ローカル ...
労働統計局の生産者物価指数(PPI)によると、ホストとサーバーのコストは2022年第3四半期以降、前...
はじめに:BATの大規模な侵攻は業界で大きな注目を集めています。3つの巨人による集中的な文化的囲い込...
Huawei Quick App IDEはサーバーレスクラウド開発機能を正式にリリースし、クラウド機...
一言でまとめると、Ingress は Ingress ルール、IngressController、I...
オンラインマーケターとして、私は今困惑しています。オンライン情報がたくさんある中で、どうすればオンラ...
[51CTO.comより引用] 2018年5月18日〜19日、51CTO主催のグローバルソフトウェア...
SEO業務に従事するには、キーワード分析とサイクル予測という2つの能力を習得する必要があります。他の...