Nginx配置Kafka


Nginx

是一個輕量級的web服務器,可以支持反向代理、負載均衡,具有占用資源少,並發量大等特點。

下載

http://nginx.org/en/download.html

解壓

tar -zxvf nginx-1.16.1.tar.gz   ~   

進行預編譯

cd /root/nginx-1.16.1
./configure

如果報錯 安裝 gcc 和 PCRE
yum -y install gcc pcre-devel openssl openssl-devel

執行完 ./configure 會在nginx根目錄下生成MakeFile

編譯安裝

make && make install

nginx 的安裝目錄

進入nginx的安裝目錄

cd  cd /usr/local/nginx/

啟動

sbin/nginx
netstat -anpt |grep nginx

實現負載均衡

將springboot的jar或者war包上傳到不同服務器上

# 啟動
nohup java -jar test-0.01.war >>./logs/log 2>&1 & 

修改nginx的配置文件,讓nginx實現負載均衡

vim /usr/local/nginx/conf/nginx.conf
 http {
        #響應數據來源  權重都為1 表示 按輪詢的方式
      upstream tomcats{
          server node1.hadoop.com:8080 weight=1;
          server node2.hadoop.com:8080 weight=1;
          server node3.hadoop.com:8080 weight=1;
      }
      
      server {
       # 表示將所有請求都轉發到 tomcats 中
          location ~ .* {
                  proxy_pass http://tomcats;
          }
    }
     
}
  • 測試配置文件是否ok
sbin/nginx -t
#從新加載
sbin/nginx -s reload

nginx 整合 kafka

安裝kafka的c庫插件

cd /usr/local/src
git clone https://github.com/edenhill/librdkafka
cd librdkafka
# 編譯
安裝 gcc-c++ 等
yum install -y gcc-c++ pcre-devel zlib-devel
./configure
make && make install

下載 nginx-kafka插件

cd /usr/local/src
git clone https://github.com/brg-liuwei/ngx_kafka_module

編譯nginx並將插件一同編譯進去

cd nginx-1.16.1
./configure --add-module=/usr/local/src/ngx_kafka_module
make && make install

配置

vim config/nginx.conf
http{
    kafka;
    kafka_broker_list 127.0.0.1:9092 127.0.0.1:9093;
    
    server {

        # some other configs

        # 指定kafka  /kafka/track 表示一個路徑,請求該路徑會將數據寫入名為 track的topic 
        location = /kafka/track {
            # optional directive: kafka_partition [<partition-num> | auto]
            #
            # kafka_partition auto; # default value
            # kafka_partition 0;
            # kafka_partition 1;
            
            #要寫入 kafka 的 topic
            kafka_topic track;
        }
    }
    
}

啟動zk & kafka 並創建topic

啟動nginx

啟動之前要將kafka c本地動態鏈接庫加載到系統
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig

sbin/nginx -t
sbin/nginx

# 向nginx 發送請求 參數 為-d后面的值
curl localhost/kafka/trank -d "message send to kafka topic"

配置成功后,可用通過get、post請求直接向nginx發送請求,nginx-kafka插件直接將參數發送到kafka對應的topic中。


免責聲明!

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



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