nginx整合kafak


nginx整合kafak后,可以將nginx中的數據,直接保存到kafka中

就是給Nginx安裝一個kafka插件

操作步驟:

一:安裝git

yum install -y git

但是此種安裝git版本可能過低,會導致git clone操作使用,所以需要注意git的版本

二:下載kafka的c客戶端源碼

放在與nginx同一個父級目錄下

git clone https://github.com/edenhill/librdkafka

三:進入到librdkafka,然后進行編譯

yum install -y gcc gcc-c++ pcre-devel zlib-devel
./configure
make && make install

四:安裝nginx整合kafka的插件

git clone https://github.com/brg-liuwei/ngx_kafka_module

五:編譯Nginx,將插件一同進行編譯

./configure --add-module=/usr/local/src/ngx_kafka_module/
    make
    make install


六:修改Nginx的配置nginx.conf

#user  nobody;
worker_processes  1;

#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    #access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    
 kafka; kafka_broker_list kafka-01:9092 kafka-02:9092 kafka-03:9092;     
    
    server {
        listen       80;
        server_name  nks_name;
    location = /kafka/track { kafka_topic track; } location = /kafka/user { kafka_topic user; }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

七:啟動zookeeper 和 kafka集群

/root/apps/zookeeper-3.4.9/bin/zkServer.sh start
/root/apps/kafka_2.11-0.10.2.1/bin/kafka-server-start.sh -daemon /root/apps/kafka_2.11-0.10.2.1/config/server.properties


八:啟動nginx

/usr/local/nginx/sbin/nginx

如果啟動時報錯:
error while loading shared libraries: librdkafka.so.1: cannot open shared object file: No such file or directory

表示找不到kafka.so.1的文件

解決方法:

echo "/usr/local/lib" >> /etc/ld.so.conf ldconfig   --需要執行的命令LDCONFIG


九:重啟Nginx服務

/usr/local/nginx/sbin/nginx -s reload


十:向nginx中寫入數據

curl localhost/kafka/track -d "hello world"

localhost表示本機,nginx的80端口

/kafka/track 表示nginx中配置的server -> location中的路徑 信息

 

十一:啟動消費者

在某一個kafka服務器上,啟動一個個消費者

/root/app/kafka_2.11-0.8.2.2/bin/kafka-console-consumer.sh --zookeeper zk-02:2181,zk-01:2181,zk-03:2181 --topic track --from-beginning

其中的track 對應 Location = kafka/track 中的track

 十二:前端程序記錄日志(通過nginx記錄到kafka)

wx.request({
          //用POST方式請求es可以只指定index和type,不用指定id
          url: "http://NginxLog-01/kafka/track",
          data: {
            time: new Date(),
            openid: openid,
            lat: lat,
            log: log
          },
          method: "POST"
        })

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM