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

推薦する

Tomcat が非同期サーブレットを実装する方法の詳細な説明

序文これまでの Tomcat シリーズの記事を通じて、私のブログを読んでいる学生は Tomcat に...

Vue プロジェクトを実行するときに `--fix` オプションで修正できる可能性のある警告のエラー問題を解決します。

問題: vue-cil3 は、`--fix` オプションで修正できる可能性のある警告とともに実行され...

Javascript Echarts 空気質マップ効果の詳細な説明

まず、空気質データと地図データを組み合わせる必要があります。マップデータには属性名があるさまざまな都...

Dockerネットワーク作成に--subnetを追加した後の問題を解決する

Docker ネットワークの作成に –subnet を追加した後、docker network ls...

ByteDance インタビュー: JS を使用して Ajax 同時リクエスト制御を実装する方法

序文正直に言うと、最近とても混乱していると感じています。テクノロジーと人生について。また、将来の発展...

MySQL インデックス障害の上位 10 の問題の概要

目次背景1. クエリ条件に「or」が含まれているため、インデックスが失敗する可能性があります。 2....

Windows での MySQL 8.X インストール チュートリアル

以前は MySQL 5.7 を使用していましたが、MySQL にいくつか新しい機能が追加されたため、...

ウェブページの読み込み速度を上げる簡単なヒント

Web ページの読み込み速度は、Web サイトの品質を評価するための重要な指標です。その理由は、ほと...

MySQL を暗号化および復号化するいくつかの方法 (要約)

目次前面に書かれた双方向暗号化エンコード/デコードAES_ENCRYPT/AES_DECRYPT D...

SqlクエリMySqlデータベーステーブル名と説明テーブルフィールド(列)情報

以下では、SQL クエリ ステートメントを使用して、Mysql データベース内のテーブルのテーブル名...

フォームタグの Enctype 属性とその応用例の紹介

Enctype : ブラウザがデータをサーバーに送り返すときに使用するエンコーディングのタイプを指定...

Web ベースの電子メール コンテンツの HTML フォーマット標準の概要

1. ページ要件1) 標準のヘッダーとフッターを使用するXML/HTML コードコンテンツをクリップ...

vue3で注意すべき2つのポイントを詳しく解説:セットアップ

目次vue2の場合vue3ではセットアップに関する注意事項セットアップライフサイクルは、before...

Chrome 4.0 は GreaseMonkey スクリプトをサポートします

GreaseMokey (中国語では Grease Monkey Script と呼んでいます) は...

CSS の境界線を通して三角形と矢印を実装するサンプルコード

1. CSS ボックスモデルボックスには、余白、境界線、パディング、コンテンツが含まれます境界線の接...