Kafka と Nginx の統合例

Kafka と Nginx の統合例

背景

nginx-kafka-module は、Kafka を nginx に統合して、Web プロジェクトのフロントエンド ページからのデータ収集を容易にする nginx 用プラグインです。データがフロントエンド ページに埋め込まれている場合、一部のユーザー アクセスおよびリクエスト データは、http リクエストを通じてメッセージ ミドルウェア Kafka に直接送信できます。バックエンドは、プログラムを通じて Kafka 内のメッセージを消費し、リアルタイム計算を実行できます。たとえば、SparkStream を使用すると、Kafka 内のデータをリアルタイムで消費し、ユーザーの PV、UV、一部のユーザー行動、ページのファネル モデルの変換率を分析して、システムをより最適化したり、訪問ユーザーのリアルタイムの動的分析を実行したりできます。

具体的な統合手順

1. gitをインストールする

yum インストール -y git

2. /usr/local/srcディレクトリに切り替えて、Kafka Cクライアントのソースコードをローカルにクローンします。

/usr/local/src をコピーします
git クローン https://github.com/edenhill/librdkafka

3. librdkafkaを入力してコンパイルする

cd librdkafka
yum インストール -y gcc gcc-c++ pcre-devel zlib-devel
./configure
作成 && インストール

4. nginx統合kafkaプラグインをインストールし、/usr/local/srcに入り、nginx統合kafkaソースコードをクローンします。

/usr/local/src をコピーします
Git クローン https://github.com/brg-liuwei/ngx_kafka_module

5. nginxソースパッケージディレクトリに入る(nginxをコンパイルし、同時にプラグインをコンパイルする)

/usr/local/src/nginx-1.12.2 をコピーします
./configure --add-module=/usr/local/src/ngx_kafka_module/
作成 && インストール

6. nginx設定ファイルを変更します。場所とkafkaトピックを設定します。詳細については、現在のディレクトリのnginx.confを参照してください。

#設定を追加(2箇所)
カフカ;
kafka_broker_list f1:9092 f2:9092 f3:9092;

場所 = /kafka/access {
kafka_topic アクセス888;
}

以下のように表示されます。

7. zk および kafka クラスターを起動する (トピックを作成する)

zkServer.sh 開始
kafka-server-start.sh -daemon config/server.properties

8. nginxを起動し、エラーを報告し、kafka.so.1ファイルが見つからない

共有ライブラリのロード中にエラーが発生しました: librdkafka.so.1: 共有オブジェクトファイルを開けません: そのようなファイルまたはディレクトリはありません

9. soライブラリをロードする

#起動時に /usr/local/lib 下のライブラリをロードします echo "/usr/local/lib" >> /etc/ld.so.conf
#ldconfigを手動でロードする

10. テストを行い、データを nginx に書き込み、Kafka コンシューマーがデータを消費できるかどうかを観察します。

curl http://localhost/kafka/access -d "メッセージをkafkaトピックに送信"
curl http://localhost/kafka/access -d "Xiaowei666" テスト

情報を送信するためのページ埋め込みリクエスト インターフェースをシミュレートすることもできます。

バックグラウンドの Kafka 消費情報は次のとおりです。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Spring Boot WebSocket 統合と nginx 構成の詳細な説明
  • FastDFS をインストールして設定し、Nginx-1.13.3 と統合する方法
  • Linux での Nginx + Tomcat 統合のインストールと構成の詳細な説明
  • centos6.4+nginx+mysql+php+phpmyadminの統合プロセスの詳細な説明
  • Linux で Redmine と SVN を Nginx に統合する方法

<<:  検証コード干渉を実装する js (静的)

>>:  検証コード干渉を実装する js (動的)

推薦する

Ubuntu 16.04 64 ビット版の VMware Tools のインストールと構成のグラフィック チュートリアル

この記事では、VMware Toolsのインストールと構成に関するグラフィックチュートリアルを参考と...

MySQL サーバーにおける SSD パフォーマンスの問題の詳細な分析とテスト

【質問】 HP サーバーを使用しています。SSD が IOPS 約 5000 を書き込むと、%uti...

MySQL Strict Modeの知識ポイントの詳細な説明

I. 厳密モードの説明MySQL 5.0 以降の厳密モード (STRICT_TRANS_TABLES...

Nginx Rewrite の使用シナリオと設定方法の分析

Nginx Rewriteの使用シナリオ1. URL アドレスジャンプ。たとえば、ユーザーが pm....

MySQLがサブクエリと結合の使用を推奨しない理由

ページ分割されたクエリを実行するには: 1. MySQL の場合、サブクエリと結合の使用は推奨されま...

Centos8 で yum を使用して mongodb 4.2 をインストールする方法

1. リポジトリファイルを作成するmongodb の公式インストール ドキュメントを参照し、次のスク...

MySQLトランザクションとMySQLログの詳細な説明

取引特性1. アトミック性: トランザクションの開始後、すべての操作が完了するか、まったく実行されな...

HTML の基本 - ハイパーリンク スタイルを設定する簡単な例

*** ハイパーリンクのスタイル設定の例a:link クリックされる前のハイパーリンクの状態a:vi...

HTML テーブルタグチュートリアル (25): 垂直配置属性 VALIGN

垂直方向では、行の配置を上、中央、下に設定できます。基本的な構文<TR VALIGN=&quo...

MySQL の繰り返し読み取りレベルでファントム読み取りを解決できますか?

導入データベース理論についてさらに学んでいくうちに、さまざまな分離レベルによって起こり得る問題につい...

ウォーターフォールフローレイアウトを実装する3つの方法

序文今日、Xianyuを閲覧していたとき、各行の高さが同じではないことに気付きました。調べてみると、...

JavaScriptで配列かどうかを判断するためのさまざまな方法のまとめ

目次序文配列.isArrayコンストラクタインスタンスプロトタイプオブジェクト.プロトタイプ.toS...

MySQL ビューの紹介と基本操作のチュートリアル

序文ビューは、データベース システム内で非常に便利なデータベース オブジェクトです。 MySQL 5...

CSS3 で @media を使用して Web ページの適応を実現するためのサンプル コード

現在、コンピュータモニターの画面解像度はますます高くなる傾向にありますが、携帯電話などのモバイルデバ...