• 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中。

  • 相关阅读:
    面试题38:股票最大收益问题
    面试题37:字符串中的括号
    面试题36:罗马数和阿拉伯数的相互转换
    面试题35:大数(字符串)相乘
    面试题34:文本对齐
    面试题33:简化目录路径
    面试题32:字符串的通配符匹配
    并发调度的可串行性
    mysql limit查询(分页查询)探究
    通过宏定义将__declspec(dllexport)与__declspec(dllimport)的转化,实现库代码和使用代码使用同一份头文件
  • 原文地址:https://www.cnblogs.com/maguangyi/p/14215170.html
Copyright © 2020-2023  润新知