Kafka では、メッセージを書き込むプロデューサーとメッセージを読み取るコンシューマーの操作はすべてリーダー レプリカと対話し、プライマリ書き込み、プライマリ読み取りのプロダクションおよびコンシューム モデルを実現します。データベース、Redis などはすべて、マスター書き込み、マスター読み取りの機能を備えており、同時に、読み取りと書き込みの分離を意味するマスター書き込み、スレーブ読み取りの機能もサポートしています。マスター書き込み、マスター読み取りに対応するため、ここではマスター書き込み、スレーブ読み取りと呼ぶことにします。 Kafka はマスター書き込みとスレーブ読み取りをサポートしていません。なぜ? コードの観点から見ると、コードの複雑さは増しますが、この機能は Kafka で完全にサポートされます。この問題については、「利益ポイント」の観点から具体的な分析を行うことができます。マスター書き込みとスレーブ読み取りにより、スレーブ ノードはマスター ノードの負荷圧力を共有できるため、スレーブ ノードがアイドル状態のときにマスター ノードが過負荷になるのを防ぐことができます。ただし、マスター書き込みスレーブ読み取りアプローチには、2 つの明らかな欠点もあります。
実際には、多くのアプリケーションは、一定期間にわたって、ある程度の遅延とデータの不整合の両方を許容できます。 では、この場合、Kafka はマスター書き込みとスレーブ読み取りの機能をサポートする必要があるのでしょうか? マスター書き込みとスレーブ読み取りは一定量の負荷を共有できますが、完全な負荷分散を実現することはできません。たとえば、データ書き込み圧力が非常に高く、読み取り圧力が非常に低い場合、スレーブ ノードは負荷圧力のごく一部しか共有できず、圧力の大部分はマスター ノードに残ります。ただし、Kafka は高度な負荷分散を実現でき、このバランスはプライマリ書き込み、プライマリ読み取りアーキテクチャで実装されます。次の図に示すように、Kafka の生産および消費モデルを見てみましょう。 Kafka クラスターには 3 つのパーティションがあり、各パーティションには 3 つのレプリカがあり、3 つのブローカーに均等に分散されています。灰色の陰影はリーダー レプリカを表し、灰色以外の陰影はフォロワー レプリカを表します。点線は、フォロワー レプリカがリーダー レプリカからメッセージをプルすることを示します。プロデューサーがメッセージを書き込むと、そのメッセージはリーダー コピーに書き込まれます。上の図の状況では、各ブローカーにはプロデューサーからのメッセージが流れ込んでいます。コンシューマーがメッセージを読み取ると、そのメッセージはリーダー コピーからも読み取られます。図 8-23 の状況では、各ブローカーからコンシューマーにメッセージが流れ出ています。 各ブローカーの読み取り負荷と書き込み負荷が同じであることが明確にわかります。これは、プライマリ書き込みとセカンダリ読み取りでは実現できない負荷分散を、Kafka がプライマリ読み取りを通じて実現できることを意味します。上図は理想的な展開状況を示しています。次のような状況(これらに限定されません)では、ある程度の負荷の不均衡が発生する可能性があります。 (1)ブローカー側のパーティションが不均等に分散されている。トピックを作成するときに、一部のブローカーにはより多くのパーティションが割り当てられ、他のブローカーにはより少ないパーティションが割り当てられる場合があり、当然、リーダー レプリカは不均等に割り当てられます。 (2)プロデューサーが書くメッセージにばらつきがある。プロデューサーは、一部のブローカーのリーダー コピーに対してのみ大量の書き込み操作を実行し、他のブローカーのリーダー コピーを無視する場合があります。 (3)消費者は情報を不均等に消費している。コンシューマーは、一部のブローカーのリーダー コピーに対してのみ大量のプル操作を実行し、他のブローカーのリーダー コピーを無視する場合があります。 (4)リーダーレプリカは不均一に切り替わる。実際のアプリケーションでは、ブローカーの障害により、マスター レプリカとスレーブ レプリカの切り替えや、パーティション レプリカの再配布などが発生する可能性があります。これらのアクションにより、各ブローカー内のリーダー レプリカの配布が不均一になる可能性があります。 これに対してはいくつかの予防策を講じることができます。 最初のケースでは、トピックを作成するときに、パーティションの分散をできるだけバランスよくするようにしてください。幸いなことに、Kafka の対応する分散アルゴリズムもこの目標を達成しようと努めています。開発者がディストリビューションをカスタマイズする場合は、この点に注意する必要があります。 2 番目と 3 番目の状況では、マスター書き込みとスレーブ読み取りでも解決できません。 4 番目のケースでは、Kafka はリーダー レプリカのバランスを実現するために優先レプリカ選択を提供します。同時に、対応する監視、警報、運用保守プラットフォームと連携して、バランスのとれた最適化を実現することもできます。 実際のアプリケーションでは、監視、アラーム、運用と保守を組み合わせたエコロジカル プラットフォームの助けを借りて、Kafka はほとんどの場合に高度な負荷分散を実現できます。 一般に、Kafka はプライマリ書き込みとプライマリ読み取りのみをサポートしており、これにはいくつかの利点があります。 コードの実装ロジックを簡素化し、エラーの可能性を減らすことができます。負荷の粒度を均等に分散できます。マスター書き込みスレーブ読み取りモデルと比較すると、負荷パフォーマンスが優れているだけでなく、ユーザーによる制御も可能です。遅延の影響はありません。 レプリカが安定している場合、データの不整合は発生しません。このため、Kafka は、何のメリットもないマスター書き込みスレーブ読み取り機能をなぜ実装する必要があるのでしょうか?これらすべては、カフカの優れたアーキテクチャ設計によるものです。ある意味、マスター書き込みスレーブ読み取り機能は、設計上の欠陥による暫定的な対策です。 |
<<: EasyStack Enterprise Cloud は、河南省病院のプライベート クラウド プラットフォームが大規模な医療ビジネス システムをサポートするのを支援します。
>>: クラウドネイティブ業界の初カンファレンスが開幕、クラウドネイティブの本当のチャンスと実践を紹介
2014年11月22日、Renren Yingyingの閉鎖に続き、有名な映画・テレビ字幕ウェブサイ...
cmivps は、香港 CMI ラインのすべての VPS を 30% 割引する大規模な春節プロモーシ...
virmach vps は、3 月にロサンゼルス データ センターで、Windows が組み込まれた...
ミドルウェア業界の著名なメーカーである北京 Tong Technology Co., Ltd.(以下...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますエンタープ...
執筆者:Qianshan制作 | 51CTO テクノロジースタック (WeChat ID: blog...
ロサンゼルス内で迂回ルートでなければ、速度はそれほど悪くありません!ホストキャットがeorealit...
Hostkvm は今月、香港クラウド データ センターの VPS を 30% 割引でご提供しています...
多くの場合、誰もが人気のある VPS ベンダーに群がりたがりますが、人が多すぎると厄介になります。こ...
Eurasia Cloud (新ブランド、設立1年、商標、ISP\ICPおよびその他の資格を完備) ...
1. エッジコンピューティングシステムの論理アーキテクチャの概要図 3-1 からわかるように、論理ア...
「Youzhan」という言葉は、1年前にはほとんどの人にとって馴染みのない言葉ではなくなりました。し...
【ポイント】ショッピングガイド事業がますます多くの外部要因に囲まれる中、将来的にはショッピングガイド...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますSINE ...
iberx は、シアトルとオランダに拠点を置く新しい KVM 仮想 VPS を立ち上げました。この ...