入門
カフカはあるApache Software Foundationのオープンソース・ストリーム処理プラットフォームを開発するためのScalaとJavaは書くこと。カフカは、高スループットである分散型パブリッシュ・サブスクライブ・メッセージング・システムは、サイト内のデータをストリーミング消費者のすべてのアクションを処理することができます。このアクション(Webブラウジング、検索および他のユーザのアクションは)現代のネットワークでは、多くの社会的機能の重要な要素です。必要なスループットに通常起因するこれらのデータは、重合プロセスログとログによって達成されます。等のためのHadoopなどのログデータおよびオフライン分析システムが、リアルタイム処理の制限を必要とし、これは実行可能なソリューションです。カフカの目的は、にあるHadoopのオンラインとオフラインメッセージングを統一するパラレルローディング機構、だけでなく、合格するためには、クラスターリアルタイム情報を提供するために。
、KAFKA
アーキテクチャ図:
- プロデューサー: メーカーは、一つのメッセージで送信されます。プロデューサーは、メッセージの作成を担当していることにより、飼育係を見つけるブローカーを、そして、その後に配信カフカに。
- 消費者は: 消費者は、それは、メッセージを受信側です。飼育係対応見つけるブローカー消費のため、ひいては対応するサービスロジックを。
- ブローカー: サービス・エージェントのノード。ためカフカの用語は、ブローカーは単に独立したと見なすことができるカフカのサービスノードまたはカフカのサービスインスタンス。それはすることができますほとんどの場合、ブローカーとして見カフカのサーバー、このサーバーにのみ展開することを提供カフカのインスタンスを。一つまたは複数のブローカー形成カフカのクラスタを。一般的に言えば、我々は最初の文字を小文字の使用に慣れているブローカーをサービス・エージェントのノードを表すために
送信メッセージフロー図を:
カフカ複数のコピー(レプリカ)のメカニズム:
図上に示したようにカフカのがクラスタ4 番目のブローカは、トピックが有する3つのパーティションを、そして因子(すなわち、コピー数)のコピーでもある3 ので、そこに各パーティション1 番目リーダーコピーと2 番目の従動コピー。のみで生産者と消費者リーダーは、相互作用のコピーを行い、そしてフォロワーのレプリカは、多くの場合、同期メッセージに対してのみ責任があるフォロワーにメッセージの相対的なコピーをリーダー、いくつかの遅れがあるでしょう用語のコピーを。
二、Zookeeper
ZooKeeperのは分散型、オープンソースの分散アプリケーションの連携サービスであるGoogleはチャビーのオープンソース実装で、HadoopのとHBaseの重要な構成要素です。それは、分散アプリケーションのための一貫したサービスを提供することで機能が含ま提供:コンフィギュレーション・メンテナンス、ドメイン・ネーム・サービス、分散型の同期、グループ・サービスを。
原理:
チャートを高くすることができます。
各図のサーバーは、飼育係のサービスをインストールするサーバーを表します。組成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』という