カフカ舵その高可用性クラスタをインストールしてテストします

入門

カフカはあるApache Software Foundationのオープンソース・ストリーム処理プラットフォームを開発するためのScalaJavaは書くこと。カフカは、高スループットである分散型パブリッシュ・サブスクライブ・メッセージング・システムは、サイト内のデータをストリーミング消費者のすべてのアクションを処理することができます。このアクション(Webブラウジング、検索および他のユーザのアクションは)現代のネットワークでは、多くの社会的機能の重要な要素です。必要なスループットに通常起因するこれらのデータは、重合プロセスログとログによって達成されます。等のためのHadoopなどのログデータおよびオフライン分析システムが、リアルタイム処理の制限を必要とし、これは実行可能なソリューションです。カフカの目的は、にあるHadoopのオンラインとオフラインメッセージングを統一するパラレルローディング機構、だけでなく、合格するためには、クラスターリアルタイム情報を提供するために。

、KAFKA

アーキテクチャ図:

 

  1. プロデューサー メーカーは、一つのメッセージで送信されます。プロデューサーは、メッセージの作成を担当していることにより、飼育係を見つけるブローカーをそして、その後に配信カフカに。
  2. 消費者は 消費者は、それは、メッセージを受信側です。飼育係対応見つけるブローカー消費のためひいては対応するサービスロジックを。
  3. ブローカー サービス・エージェントのノード。ためカフカの用語は、ブローカーは単に独立したと見なすことができるカフカのサービスノードまたはカフカのサービスインスタンス。それはすることができますほとんどの場合、ブローカーとして見カフカのサーバー、このサーバーにのみ展開することを提供カフカのインスタンスを。一つまたは複数のブローカー形成カフカのクラスタを。一般的に言えば、我々は最初の文字を小文字の使用に慣れているブローカーをサービス・エージェントのノードを表すために

送信メッセージフロー図を:

 

カフカ複数のコピー(レプリカ)のメカニズム

 

図上に示したようにカフカのがクラスタ4 番目のブローカは、トピックが有する3つのパーティションを、そして因子(すなわち、コピー数)のコピーでもある3 ので、そこに各パーティション1 番目リーダーコピーと2 番目の従動コピー。のみで生産者と消費者リーダーは、相互作用のコピーを行い、そしてフォロワーのレプリカは、多くの場合、同期メッセージに対してのみ責任があるフォロワーにメッセージの相対的なコピーをリーダー、いくつかの遅れがあるでしょう用語のコピーを。

二、Zookeeper

ZooKeeperのは分散型、オープンソースの分散アプリケーションの連携サービスであるGoogleはチャビーのオープンソース実装で、HadoopのとHBaseの重要な構成要素です。それは、分散アプリケーションのための一貫したサービスを提供することで機能が含ま提供:コンフィギュレーション・メンテナンス、ドメイン・ネーム・サービス、分散型の同期、グループ・サービスを。

原理:

ZooKeeperの高速Paxosアルゴリズムをベースに、 Paxosアルゴリズムが 存在する ライブロック 問題を複数の提案者が提出した互い違いのあるとき、つまり、それが成功提出し、相互に排他的な提案者につながらないこと、および高速Paxosは選挙を通じて、いくつかの最適化を行いましたリーダー(指導者)、提案書を提出するための唯一のリーダーで、特定のアルゴリズム見える高速Paxosを作り出します。そのため、ZooKeeperのを理解するためには、まず高速Paxosを理解する必要があります。
基本的な演算処理を飼育係:
リーダーの1選挙。
図2に示すように、同期データ。
3、そこに多くのアルゴリズムリーダー選挙プロセスですが、選挙の基準が一致している達成するために。
4、リーダーは、同様のroot権限を最高の実行IDを持っています。
5、クラスタ内のマシンのほとんどは、応答を取得し、リーダーが選出受け入れます。  

チャートを高くすることができます。

各図のサーバーは、飼育係のサービスをインストールするサーバーを表します。組成ZooKeeperのサーバサービスは、メモリに現在のサーバの状態を維持し、各サーバ間で維持互いに通信します。ザブプロトコル(飼育係アトミックブロードキャスト)することで、データの一貫性を維持するために、クラスタ間。

第三に、展開カフカ&ZooKeeperのクラスタ

私たちは、公式チャートアドレスを選択しました:https://github.com/helm/charts/tree/master/incubator/kafka

1)(注意私のSTORAGECLASSがすでにNFSのストレージを行います)、独自のvalues.yamlファイルを書きます

imageTag: "5.2.2"   
リソース:
   制限:
     CPU:2 
     メモリ:4Giの
   要求:
     CPU:1 
     メモリー:2Gi 
kafkaHeapOptions: "-Xmx2G -Xms2G" 
持続性:
  有効:真
  STORAGECLASS: "マネージド・NFSストレージ" 
  サイズ:」 40Gi」
飼育係:
  リソース:
    制限:
      CPU:1 
      メモリー:2Gi 
    要求:
      CPU:100メートル
      メモリ:536Miの
  持続性:
    有効:真
    STORAGECLASS: "マネージド・NFSストレージ" 
    サイズ: "10Gi"

 2)インストールカフカ

グラフの倉庫を追加します。

$ヘルムレポ追加インキュベーターhttp://storage.googleapis.com/kubernetes-charts-incubator

 配備します

$ヘルムはインストール--nameカフカ-f values.yamlインキュベーター/カフカ

 最後に、我々は見ることができます:

第四に、テスト・カフカの高可用性

1)テストクライアントを作成するために、プロンプトに従って

apiVersion:v1の
種類:ポッドの
メタデータ:
  名前:testclient 
  名前空間:SSCP-テスト
仕様:
  コンテナ:
  -名前:カフカの
    画像:solsson /カフカ:0.11.0.0 
    コマンド:
      - SH 
      - -c 
      - 「幹部は、tail -fを/ dev / null "

あなたはランニング上記testclientポッドを持っていたら、すべてのカフカの一覧表示することができ
てトピックを:

  kubectl -n SSCP-テストのexec testclient  - カフカ・テスト・飼育係--zookeeperカフカ-トピック:2181 --list


新しいトピックを作成するには:

  kubectl -n SSCP-テストのexec testclient  - カフカ-トピック--zookeeperカフカテスト-飼育係:2181 --topic test1の--create --partitions 1 --replication-因子1


トピックのメッセージを受信するには:

  kubectl -n SSCPテストEXEC -ti testclient  -  {1 1000}でxについて、エコー$ xを行います。睡眠2; 行わ| カフカ・コンソール・プロデューサー--brokerリストカフカ-テストヘッドレス:9092 --topic TEST1

Ctrlキー+ C:プレス上記のリスナーセッションを停止するには

、対話型メッセージプロデューサセッションを開始するには:

  kubectl -n SSCP試験幹部-ti testclient  - カフカ・コンソール・プロデューサー--brokerリストカフカ-テストヘッドレス:9092 --topic TEST1

上記のセッションでメッセージを作成するには、単に「入力」のメッセージを入力し、押し
Ctrlキー+ C:プロデューサーセッションの試みを終了するには


注:3つのカフカのノードがあり、その高可用性を維持するために、送信するメッセージの3つのコピー!

第五に、テスト飼育係の高可用性

以下のコマンドによって1.Createノード:

「kubectl幹部-it testclient bashの-n SSCP試験」

「飼育係・シェルカフカテスト-飼育係-ヘッドレス:2181作成/ fooのバー」

2.チェック飼育係のステータス

ウォッチ既存のメンバー:
$ kubectlラン--attach BBOX --image = busyboxの--restart =決して- SH -c「真の間、0 1 2で私のために行います。やるエコーZK - $ {I} $(エコー統計| NCカフカ-飼育係- $ {I} .kafka-飼育係-ヘッドレス:2181 | grepのモード); 睡眠1; 行わ; 」行って
フォロワー:ZK-2モード
ZK-0モード:フォロワー
ZK-1モード:リーダー
ZK-2モード:フォロワー

以下のコマンドにより、リーダーは3.kill:

『Kubectl削除ポッドカフカテスト-飼育係-1』

4.Check以下のコマンドにより、以前に挿入されたキー:

「『kubectl幹部-it testclient bashの-n SSCP試験』

『飼育係・シェルカフカテスト-飼育係-ヘッドレス:2181 GET / foo』という

 

おすすめ

転載: www.cnblogs.com/Dev0ps/p/11259324.html