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 (動的)

推薦する

JS を使用してデータ型を決定する 4 つの方法

目次序文1. 型2. インスタンス3. コンストラクター詳細: 4. 文字列要約する序文Javasc...

Dockerは異常なコンテナ操作を排除する

この初心者は、Docker を学び始めたばかりの頃にこのような問題に遭遇しました。記録しておきます。...

MySQL 8.0.18 安定版がリリースされました! 予想通りハッシュ結合が実装されました

MySQL 8.0.18 安定版 (GA) が昨日正式にリリースされ、Hash Join も期待通り...

バックアップと削除のためにリアルタイムでステートメントを検出するMySQLトリガーの考え方の詳細な説明

問題の説明: ユーザーは、テーブルに「違反」という単語を含むフィールドが時々表示されることを要求して...

Docker コンテナに TensorRT をインストールする際の問題

Ubuntu にインストールされているバージョンをアンインストールします。 sudo apt-get...

Nginx 500 内部サーバーエラーの解決方法

今日、Nginxを使っていたら500エラーが発生しました。エラーコードを検索してみんなに共有しました...

MySQLデータベースは何をするのか

MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...

JSで実施された機雷掃海プロジェクトの概要

この記事では、JS掃海プロジェクトの概要を参考までに紹介します。具体的な内容は次のとおりです。プロジ...

Vue カプセル化コンポーネント ツール $attrs、$listeners の使用

目次序文$属性例: $listeners (公式説明)使用シナリオ要約する序文複数レベルのコンポーネ...

WindowsはVMwareを使用してLinux仮想マシンを作成し、CentOS7.2オペレーティングシステムをインストールします。

目次1. ウィザードに従って仮想マシンを作成します2. オペレーティングシステムをインストールします...

Windows 10 での MySQL 5.7.21 インストーラのインストール グラフィック チュートリアル

MySQLをインストールしてメモしておきます。うまくインストールできるか分かりませんが、試してみます...

react+antdプロジェクトをゼロから構築する方法を教えます

これまでの記事はすべて私自身の学習記録であり、主に以前に遭遇した落とし穴を忘れないようにするためのも...

MySQL 8.0.11 のインストールと設定方法のグラフィックチュートリアル MySQL 8.0 の新しいパスワード認証方法

この記事では、参考までにMySQL8.0.11のインストールと設定方法、およびMySQL8.0の新し...

LinuxでHomebrewを使用する正しい方法

多くの人が Linux Homebrew を使用しています。これをより良く使用するための 3 つのヒ...