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

推薦する

JavaScript 配列メソッド - 体系的な概要と詳細な説明

目次一般的な配列メソッド配列要素の追加と削除配列ヘッダーの操作配列の末尾を操作する任意の場所に追加ま...

JavaScriptの構文とコード構造に関する深い理解

目次概要機能性と読みやすさ空白括弧セミコロンインデント身元大文字と小文字を区別予約キーワード概要すべ...

JS を使用して配列内の要素の存在を 10 分で判断する

序文フロントエンド開発では、配列内に要素が存在するかどうかを判断する必要があることがよくあります。実...

MySQL 8.0 のデフォルトのデータディレクトリを変更する (設定なしの簡単な操作)

使用シナリオ: Alibaba Cloud を使用しており、データディスクを別途購入しました (大容...

CSS 変数に基づくテーマ切り替えに最適なソリューション (推奨)

この要件を受け取ったとき、Baidu は、CSS リンクの置き換え、className の変更、le...

Mysql 中国語ソートルールの説明

MySQL を使用する際、フィールドをソートしたりクエリしたりすることがよくあります。通常は、中国語...

jQueryは要素を追加した後に元のイベントが実行されない問題を解決します

まずエラーコードを見てみましょう。 html: <テーブルボーダー="1"...

Centos7環境でYUMを構築する方法

1. yumソースの設定ファイルを入力します 2.lsで設定ファイルを表示する 3. ディレクトリを...

XHTML CSS ウェブサイトデザインの利点と問題点

XHTML は現在国際的に推奨されている標準的な Web サイト設計言語です。Webjx.com も...

MySQLチュートリアルではストアドプロシージャを徹底的に理解します

目次1. ストアドプロシージャに関連する概念2. ストアドプロシージャの使用1) ストアドプロシージ...

docker-compose が遅すぎる場合の解決策の詳細な説明

解決策はただ一つ、ソースを変更することです。 github からのソースは基本的にタイムアウトするの...

Docker で ElasticSearch と Kibana をインストールするためのサンプル コード

1. はじめにElasticsearchは現在非常に人気があり、多くの企業が利用しているため、esを...

Vue3における非親子コンポーネント通信の詳細な説明

目次最初の方法アプリ.vueホーム.vueホームコンテンツ.vueデータの応答性レスポンシブプロパテ...

Nodejs でモジュール fs ファイルシステムを使用する方法

目次概要ファイル記述子同期、非同期、Promise同期書き込み非同期書き込み(推奨)約束​​の書き方...

Node の SMS API で検証コード ログインを実装するためのサンプル コード

1. ノードサーバーのセットアップ + データベース接続ここでの操作は比較的簡単でわかりやすいです。...